不同属性的Django表单链接到同一个Django模型?



我对Django很陌生,所以如果我的代码不太精致,问题似乎令人困惑,请原谅我。

我试图使一个web应用程序,用户可以提交申请表格的许可证。我的问题是有各种各样的申请表。

我已经为许可证创建了一个模型,并包含了全局属性,如许可证ID、被许可人、提交日期和到期日期。我想知道如何在单个License对象中存储每个表单独有的不同数据(例如,有些表单有文件上传字段,而其他表单没有)。这是可能的吗,还是我应该为每个表单创建不同的模型?

下面是我的一些代码:

#模型
class License(models.Model):
licensee = models.ForeignKey(User, on_delete=models.CASCADE)
sub_date = models.DateTimeField(default=timezone.now())
exp_date = models.DateTimeField(blank=True, null=True)
def save(self, *args, **kwargs):
if not self.pk:
self.exp_date = self.sub_date + datetime.timedelta(days=30)
super(License, self).save()
def __str__(self):
return self.pk

#形式
class OP100Form(ModelForm):
financial_statements = forms.FileField()    
annual_report = forms.FileField()           
shareholding_docs = forms.FileField()
stock_exchange_docs = forms.FileField() 
other_docs = forms.FileField()          
tel_experience = forms.CharField()
tech_facilities_desc = forms.CharField()
tech_personnel_desc = forms.CharField() 
system_maintenance_desc = forms.CharField()
telcoms_desc = forms.FileField()
serv_desc = forms.CharField()
fac_desc = forms.CharField()
net_gate_det = forms.CharField()
class Meta:
model = License
exclude = ['licensee', 'sub_date', 'exp_date',]

不,您不需要创建另一个模型。该怎么做呢?

对于License模型中不需要的字段,在该字段上设置null=True, blank=True

对于表单中不需要的字段,在该字段上设置required=False

最新更新