Используя фильтр со свойством foreignkey, что такое _?

я так понимаю у меня есть

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' не определено Что мне не хватает?

попробуйте drama__name обратите внимание на два _

Red Cricket 10.09.2018 06:04

@RedCricket Я думал, что это было только для ключевого слова имена, а не ценности. то есть Season.objects.get(drama__name='foo'). Все, что находится справа от знака равенства, по-прежнему рассматривается как простая переменная, не так ли?

John Gordon 10.09.2018 06:07

Да, вы правы, но я считаю, что это то, что пытается сделать ОП.

Red Cricket 10.09.2018 06:10

Какую ценность name вы ищете? Это что-то в запросе, т.е. значение поля отправленной формы? Это slug?

John Gordon 10.09.2018 06:12
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
4
30
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Поскольку вы хотите отфильтровать сезоны по заданному названию драмы, предположительно сохраненному в slug, вам следует просто отфильтровать набор запросов Seasons следующим образом (обратите внимание на двойные подчеркивания, обозначающие использование поля name во внешнем ключе drama):

def seasons(request, slug):
    seasons = Season.objects.filter(drama__name=slug)

Другие вопросы по теме