я так понимаю у меня есть
class Season(models.Model):
drama = models.ForeignKey('Drama', on_delete=models.CASCADE)
так что в моем views.py
def seasons(request, slug):
drama = Drama.objects.get(name=drama_name)
seasons = Season.objects.filter(drama)
Поскольку у меня есть drama как иностранный ключ к сезонам, я могу использовать drama.name с сезонами в views.py, используя _ underbar? но он говорит 'drama_name' не определено Что мне не хватает?
@RedCricket Я думал, что это было только для ключевого слова имена, а не ценности. то есть Season.objects.get(drama__name='foo')
. Все, что находится справа от знака равенства, по-прежнему рассматривается как простая переменная, не так ли?
Да, вы правы, но я считаю, что это то, что пытается сделать ОП.
Какую ценность name
вы ищете? Это что-то в запросе, т.е. значение поля отправленной формы? Это slug
?
Попробуйте drama__name
. Обратите внимание на два _
. См. https://docs.djangoproject.com/en/2.1/topics/db/queries/#field-lookups и https://docs.djangoproject.com/en/2.1/topics/db/queries/#lookups-that-span-relationships.
Поскольку вы хотите отфильтровать сезоны по заданному названию драмы, предположительно сохраненному в slug
, вам следует просто отфильтровать набор запросов Seasons
следующим образом (обратите внимание на двойные подчеркивания, обозначающие использование поля name
во внешнем ключе drama
):
def seasons(request, slug):
seasons = Season.objects.filter(drama__name=slug)
попробуйте
drama__name
обратите внимание на два_