我希望你可以帮助我,我一直在努力制作一个表单,使用同一表单上两个字段的串联自动填充字段,但没有成功,这是我的模型和我的表单
class Doctor(models.Model):
name_doctor = models.CharField(max_length=20)
last_doctor = models.CharField(max_length=20)
email_doctor = models.EmailField()
p_doctor = models.CharField(max_length=10)
id_doctor = models.CharField(max_length=30, blank=True)
def __str__(self):
return '%s %s' % (self.name_doctor, self.last_doctor)
我的表格:
class ADoctor(forms.ModelForm):
class Meta:
model = Doctor
fields = ('name_doctor', 'last_doctor', 'email_doctor', 'p_doctor', 'id_doctor')
labels = {
'name_doctor': ('Name'),
'last_doctor': ('Last name'),
'email_doctor': ('Email'),
'p_doctor': ('Phone'),
'id_doctor': ('ID'),
}
如何覆盖保存,以便当我发送表单时,字段id_doctor填充name_doctor + last_doctor的串联?
答案 0 :(得分:2)
答案是:不要打扰。
每当您可以根据表格中的一个或多个字段的内容生成某些数据项时,您无需为其创建另一个字段。而name_doctor
+ last_doctor
就是一个典型的例子。
您的模型已经有一个name_doctor字段以及一个last_doctor字段,通过将它们组合在一起显示它们是一件小事。没有必要将它保存到数据库中,你不应该这样做。
编辑:只需在模型示例中添加方法即可生成任何自定义字段组合:
class Doctor(models.Model):
def concat_fields(self):
return self.name_doctor + self.last_doctor
def quasi_unique_id(self):
return self.name_doctor[0:2] + self.last_doctor[0:2] + id_order(some_other_model)
答案 1 :(得分:0)
已解决 ,我刚刚在我的post.save上添加了这个帖子在我的视图。我的views.py
post.id_doctor = form['name_doctor'].value() + form['last_doctor'].value()
post.save()