У меня есть модель "Родитель", которая содержит несколько моделей "Дочерний", и отношения между Родителем и Дочерним хранят порядок дочерних элементов. Таким образом, мне нужна пользовательская промежуточная модель.
models.py:
class Parent(models.Model):
name = models.CharField
children = models.ManyToManyField(Child, through=ParentChild)
...
class Child(models.Model):
name = models.CharField()
...
class ParentChild(model.Model):
parent = models.ForeignKey(Parent, on_delete=models.CASCADE)
child = models.ForeignKey(Child, on_delete=models.CASCADE)
order_of_child = IntegerField(null=True, blank=True, unique=True, default=None)
Родительский объект создается на основе формы, и выбираются дочерние объекты, которые должны быть частью родительского объекта. по флажкам. Теперь мои вопросы: как можно включить order_of_child в форму и отобразить вместе с флажками и как правильно сохранить отношения в представлении?
forms.py:
class ParentForm(ModelForm):
class Meta:
model = Parent
fields = ['name', 'children']
def __init__(self, *args, **kwargs):
super(ParentForm, self).__init__(*args, **kwargs)
self.fields['name'] = forms.CharField(label='Name', widget=forms.TextInput()
self.fields['children'] = ModelMultipleChoiceField(
widget=forms.CheckboxSelectMultiple(queryset=Child.objects.all())