Фильтровать список ForeignKey в Django
Суть проблемы следующая. есть модель:
class TerminalList(models.Model):
id = models.AutoField('ID', primary_key=True)
user_id = models.ForeignKey(Users, on_delete=models.PROTECT, null=True, blank=True, to_field='id', verbose_name="Пользователь GWM")
terminal_id = models.ForeignKey(Terminals, on_delete=models.PROTECT, default=lambda: Terminals.objects.get(status=0), null=True, blank=True, to_field='id', verbose_name="Терминал")
start_work = models.DateTimeField('Start work', auto_now=False, auto_now_add=False, null=True)
end_work = models.DateTimeField('End work', auto_now=False, auto_now_add=False, blank=True, null=True)
В модели Terminals есть поле status. Нужно чтобы при добавлении записи, в выпадающем списке отображались строки только с определённым значением в поле status, 1. Спасибо за помощь.
Ответы (1 шт):
Автор решения: Sergey M
→ Ссылка
Форма Django используется? Можешь так попробовать. Переопределяем форму при инициализации и меняем поле на нужный queryset
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['terminal_id'].queryset = Terminals.objects.filter(status=1)