我面临着一个问题,就是不知道如何在我的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'实现是错误的。
我如何修复它才能正常工作?