Как добавить фильтрованную связь полей ManyToMany

Допустим;

#models.py

choices = (
    (1, Published),
    (0, Draft)
)

Class Question(models.Model):
    question =  models.CharField(max_length=200)
    status = models.IntegerField(
        choices=choices, default=0)

class Survey(models.Model):
    question = ManytoManyField(Question)

Я хочу, чтобы вопросы были доступны для поля многие-ко-многим, если статус вопроса равен 1 или, скажем, опубликован

Для этого мы можем это сделать?

ManytoManyField(Question.objects.filter(status=1))

Или как я могу этого достичь.

все, что вам нужно - это limit_choices_to атрибут: больше здесь: https://docs.djangoproject.com/en/4.1/ref/models/fields/#django.db.models.ManyToManyField.limit_choices_to

в вашем случае:

class Survey(models.Model):
    question = ManytoManyField(Question, limit_choices_to={'status':1} )
Вернуться на верх