У меня есть два класса, скажем, «Категория» и «Продукт».Тот же шаблон URL, два разных вида?
То, что я пытаюсь достичь, на самом деле довольно простое.
«категория» содержит URL (скажем, «пищу»), что означает, когда я попал в URL, как это: mydjango.com/myapp/food/
Он фактически выполняет поиск в базе данных, если есть «Категория» объект, имеющий соответствие URL «пища ».
URL, картина что-то вроде этого:
url(r'^(?P<rel_url>.+)/$', login_required(is_allowed(Category.as_view())), name='category')
Теперь, скажем, я хочу получить доступ к продукту (от модели «продукт»), который содержится в категории Матчин «пищи», как URL. Например:
mydjango.com/myapp/food/rice
Поле url в модели продукта выглядит следующим образом: «еда/рис» Затем мой шаблон url выглядит точно так же, как и выше, кроме названия вида.
Проблема в том, что django проверяет только первый URL-адрес и сообщает, что нет объекта Category, содержащего URL-адрес «food/rice». Это имеет смысл, поскольку этот URL-адрес хранится в модели продукта.
Упрощенный вопрос: Как я могу получить доступ к двум различным представлениям в соответствии с шаблоном, который я сопоставляю? mydjango.com/myapp/food
должен использовать представление категории (используя rel_url)
mydjango.com/myapp/food/rice
не соответствует какой-либо категории, то он использует вид продукта.
Кстати, я знаю, что это не хороший способ, но это единственное решение, которое я нашел (приложение гораздо более сложным, чем просто Категория/продукт)
В модели «продукт», URL-адрес является полным URL. Поэтому я не могу отличить, является ли это продуктом или категорией, прежде чем обращаться к базе данных. – Depado
Бог, ты был прав. Спасибо, что ты гений. – Depado