我有一个 Item 对象,它与另一个对象 Option 具有多对多关系。我像这样从 Item 对象创建一个模型表单;
class Item(models.Model):
category = models.ForeignKey(Category)
name = models.CharField(max_length=200)
price = models.DecimalField(max_digits=9, decimal_places=2, blank=True, null=True)
options = models.ManyToManyField(Option)
class OptionForm(ModelForm):
options = forms.ChoiceField(widget=forms.RadioSelect())
class Meta:
model = Item
fields = ( 'options', )
当我在模板中呈现表单时,它呈现所有可用options
的Item
对象(预期行为),即使那些不是由特定项目创建的。我希望能够加载options
由用户选择的特定项目定义。我如何覆盖表单以实现这种行为。例如,如果没有表单,我可以通过其 id呈现Items
自己的表单。Options
item = Item.objects.get(pk=id)