django模型formset实例,识别每个表单

时间:2011-06-20 00:38:54

标签: django django-models django-forms django-views

这是我的模特

class Business(models.Model):
    address = models.ForeignKey(Address)
    website = models.URLField(blank=True)
    name = models.CharField(max_length=64)
    mail_address = models.ForeignKey(Address,related_name="mailing_address")

我的地址模型

class Address(models.Model):
   address_line1 = models.CharField("Address line 1", max_length = 45)
   address_line2 = models.CharField("Address line 2", max_length = 45, blank = True)
   city = models.CharField(max_length = 50, blank = False) 
   state = USStateField()
   postal_code = USZipCodeField()

我试图写一个用户同时输入业务和地址信息的视图 我正在尝试使用模型formset为用户填写业务和邮寄地址 但是我希望如果与商家地址相同,用户可以将邮寄地址部分留空。

我如何实现这一点,因为在我的地址模型中,没有什么可以留空......

如果用户想要编辑它,我如何使用不同的实例渲染formset?

1 个答案:

答案 0 :(得分:1)

  1. 删除商业模式中的mail_adress外键
  2. 为邮件列表添加正常的CharField
  3. 不要使这个charfield成为必需。
  4. 稍后您可以检查是否有邮件地址,并且适当地使用它。

    If mailing_adress:
        do stuff
    else:
        use buisness.address