如何向Django表单添加和保存非模型属性?

2024-09-29 19:21:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在django有一个模型,如下所示。在

class Employee(models.Model):
  name = models.CharField()

  def setContactInfoProperty(key, value):
    setattr(self.contactInfo, key, value)
    self.contactInfo.save()

  def getContactInfoProperty(key):
    return getattr(self.contactInfo, key)

  @phone.setter
  def phone(self, value):
    self.setContactInfoProperty('phone',value)

  def phone(self):
    return self.getContactInfoProperty('phone')

class ContactInfo(models.Model):
  phone = models.IntegerField()
  employee = models.OneToOneField('Employee', related_name='contactinfo')

由于遗留原因,手机的setter保留在Employee模型中。我现在有一个django表格给员工,我想把电话也加进去。所以我考虑在EmployeeForm中添加phone属性。在

^{pr2}$

但是当我保存表单时,手机没有被保存。如何从EmployeeForm设置电话号码? 任何帮助都将不胜感激。谢谢。在


Tags: djangokeyname模型selfmodelvaluemodels
1条回答
网友
1楼 · 发布于 2024-09-29 19:21:06

我不认为您的模型设置会使EmployeeForm识别phone字段,因此您需要手动保存它:

# in views.py
if employee_form.is_valid():
    new_employee = employee_form.save(commit=False)
    new_employee.phone = employee_form.cleaned_data['phone']
    new_employee.save()

相关问题 更多 >

    热门问题