我目前有两个Django模型,就像一个设置模型,另一个是该模型的实际数据。像这样:
class Extra(models.Model):
has_text = models.BooleanField(u'Has Text', default=False)
has_image = models.BooleanField(u'Has Image', default=False)
has_file = models.BooleanField(u'Has File', default=False)
class OrderExtra(models.Model):
extra = models.ForeignKey('Extra')
image = models.ImageField(upload_to=get_order_extra_upload_path, blank=True, null=True)
file = models.FileField(upload_to=get_order_extra_upload_path, blank=True, null=True)
text = models.TextField(blank=True, null=True)
comments = models.TextField(blank=True, null=True)
我一直在努力制作一个OrderExtra
的formset,它与我已过滤掉的Extra
的查询集相关联。然后隐藏Extra
的未选中框的字段。
我虽然为Extra
创建了一个表单并替换了创建中的字段,但我不确定如何正确地执行此操作...
如果有人可以帮助我,或提供一些非常棒的方向,因为我一直坚持如何做到这一点......
干杯。
答案 0 :(得分:0)
尝试为OrderExtra创建表单,并在 init 中添加相关额外对象的已检查字段
class MyForm(forms.ModelForm):
has_text = None
class Meta():
model=OrderExtra
def __init__(self, *args , **kwargs):
super(MyForm, self).__init__(*args , **kwargs)
if self.instance and self.instance.extra.has_text:
self.has_text = forms.BooleanField(...)
您也可以为has_image和has_file
执行此操作