如何在Django模板中形成具有许多关系的前缀

时间:2018-12-12 12:03:47

标签: django django-forms formset inlines

我面临着一个问题,就是不知道如何在我的django模板中形成涉及许多关系的前缀。

结果,我无法在多对多关系表中保存多个实例。

注意:我正在使用嵌入式表单。

我的模型。py

class Preorder(models.Model):
    client = models.ForeignKey(Client,verbose_name=u'Πελάτης')
    preorder_date = models.DateField("Ημ/νία Προπαραγγελίας",null=True, blank=True, default=datetime.date.today)
    notes = models.CharField(max_length=100, null=True, blank=True, verbose_name="Σημειώσεις")
    preorder_has_products=models.ManyToManyField(Product,blank=True)

    def get_absolute_url(self):
        return reverse('preorder_edit', kwargs={'pk': self.pk})

我的form.py

class PreorderForm(ModelForm):

    class Meta:
        model = Preorder
        fields=('preorder_date','notes',)

    def __init__(self, *args, **kwargs):
        super(PreorderForm, self).__init__(*args,**kwargs)
        self.fields['preorder_date'].widget = MyDateInput(attrs={'class':'date'})
        #self.fields['preorder_date'].widget = AdminDateWidget()


class PreorderHasProductsForm(ModelForm):

    class Meta:
        model=Preorder.preorder_has_products.through
        exclude=('client',)

    def __init__(self, *args, **kwargs):
        super(PreorderHasProductsForm, self).__init__(*args, **kwargs)
        #self.fields['preorder_date'].widget = MyDateInput(attrs={'class':'date'})
        self.fields['product'].label = "Ονομα Προϊόντος"

PreorderProductFormSet = inlineformset_factory(Preorder,Preorder.preorder_has_products.through,
                                            form=PreorderHasProductsForm, extra=1)

以上似乎按预期工作。我认为该问题与模板中的前缀有关。

模板

<script type="text/javascript">
  $('table.preorder_has_products tr.formset_row').formset({
      addText: 'Πρόσθεσε Προϊόν',
      deleteText: 'Διαγραφή',
      prefix: 'preorderhasproducts__product_set',
      animateForms: true
  });
</script>

此前缀:'preorderhasproducts__product_set'实现是错误的。

我如何修复它才能正常工作?

0 个答案:

没有答案