Как добавить фильтрованную связь полей 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} )