我的模型ModelFrom有两个很多字段,它们都是相同的模型,称之为ModelTo。
ModelFrom(models.Model):
field_one = ManyToManyField(ModelTo)
checked = ManyToManyField(ModelTo)
checked是第一个字段的子集。我已经在模型clean()和adminform clean()方法中正确验证了这一点,并更新了model :: save()来调用self.full_clean()。
理想情况下,我会有一个小部件,就像django.forms.SelectMultiple一样,但每个<option>
内都有一个复选框。
目前的样子,我为每个领域都有一个这样的小部件:
:
我想将它们组合起来并有一个复选框或其他东西,这是我的unicode表示它看起来像什么
{[blah:2☐],[blah:1☑]}
列表中的值 - &gt;字段一设置。选中框 - &gt;检查已设置,因为它是field_one的子集。
我见过jQuery UI MultiSelect Widget,但似乎没有办法选择一个选项,但是没有勾选方框。
答案 0 :(得分:0)
我无法直接回答我自己的问题,但与大多数问题一样,如果答案不可能,则可能存在潜在问题。
我不应该有两个many2many字段,而应该只为一个中间字段设置一个through属性。 像这样:
class IntermediateField(models.Model):
checked = BooleanField()
from = ForeignKey(ModelFrom)
to = ForeignKey(ModelTo)
ModelFrom(models.Model):
field_one = ManyToManyField(ModelTo, through=IntermediateField)
然后,我们可以在ModelFrom admin中使用IntermediateField的内联,轻松选中框等