Я пытаюсь создать форму с отфильтрованным полем «многие ко многим». поэтому я создал объекты:
имя дня
1) имя = воскресенье
2) имя = понедельник
Submain
1) name: Math
days (поле ManytoMany): воскресенье понедельник
2) name: Sport
days (поле ManytoMany) : Вторник
3) имя: танец
дней (поле ManytoMany): воскресенье вторник
день
1) имя ( Char field) = "Sunday"
hog1 (поле ManytoMany, filterd): покажет мне только Dance и Math для выбора.
how Могу ли я отфильтровать это поле hog1 manytomany в form.py? я должен изменить модель имени дня на forginkey дня? спасибо за любую помощь.
У меня есть 3 модели:
Models.py
class Dayname(models.Model):
name = models.CharField(verbose_name="day", max_length=200, null=True)
def __str__(self):
return self.name
class Submain(models.Model):
name = models.CharField(verbose_name="שם החוג", max_length=200, null=True)
days = models.ManyToManyField(Dayname, verbose_name="ימי פעילות",
related_name="active", max_length=200, null=True,
)
def __str__(self):
return self.name
class Day(models.Model):
name = models.CharField(verbose_name="יום", max_length=200, null=True)
hog2 = models.ManyToManyField(Submain, verbose_name="חוג 2 ביום",
related_name="hog2", max_length=200, null=True,
)
def __str__(self):
return self.name
forms.py
class DaysForm(ModelForm):
def __init__(self, *args, **kwargs):
super(DaysForm, self).__init__(*args, **kwargs)
self.fields['hog1'].required = False
self.fields["hog1"].widget = CheckboxSelectMultiple()
self.field['hog1'].queryset = Submain.objects.filter(days__in__name="sunday")