Как убрать некоторые элементы ввода списка в django admin - PullRequest
1 голос
/ 28 февраля 2020

У меня есть такой список в моем django admin: enter image description here

Вы знаете, возможно ли удалить некоторые элементы этого списка? например, я хотел бы удалить все «шлюзы», которые имеют статус «неактивный» (status = False).

Здесь модель шлюза:

class Gateway(models.Model):
    def __str__(self):
        return self.name

    name = models.CharField(max_length=255)
    logo = models.TextField()
    status = models.Boolean()

Я даже не знаю, можно сделать какой-то фильтр по списку в django admin ...

спасибо за вашу помощь!

1 Ответ

2 голосов
/ 28 февраля 2020

Да . Вы можете использовать параметр limit_choices_to=… [Django -doc] для ForeignKey. Например:

from django.db.models import Q

class MyModel(models.Model):
    gateway = models.ForeignKey(
        Gateway,
        on_delete=models.CASCADE,
        <b>limit_choices_to=Q(status=True)</b>
    )

Здесь мы фильтруем набор кандидатов Gateway s так, чтобы поле status было True.

...