Desead
@Desead

Как связать модели в Django учитывая условия?

Есть 2 модели:

class Code(models.Model):
    name = models.CharField(max_length=40, unique=True, verbose_name='Наименование')
    used = models.BooleanField(default=False, verbose_name='Используется ')

class Ordering(models.Model):
    num = models.PositiveIntegerField(auto_created=True, verbose_name='Номер заявки')
    system = models.ForeignKey(Code, on_delete=models.DO_NOTHING)


нужно чтобы в админке, про добавлении записи в Ordering, в поле system отображались не все поля из модели Code, а только те, поле used где имеет значение True. Как это реализовать?
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 1
WStanley
@WStanley
Back-end Developer
Привет!
Примерно так это должно работать
ссылка на источник
в admin.py
@admin.register(Ordering)
class OrderingAdmin(admin.ModelAdmin):

	def formfield_for_foreignkey(self, db_field, request, **kwargs):
	        if db_field.name == "system":
	            kwargs["queryset"] = Code.objects.filter(used=True)
	        return super().formfield_for_foreignkey(db_field, request, **kwargs)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы