auth.models.User
,以及我的自定义 Profile
和 Address
模型,它们看起来如下所示:
class Profile(models.Model):
user = models.OneToOneField(User)
primary_phone = models.CharField(max_length=20)
address = models.ForeignKey("Address")
class Address(models.Model):
country = CountryField(default='CA')
province = CAProvinceField(default='BC')
city = models.CharField(max_length=80)
postal_code = models.CharField(max_length=6)
street1 = models.CharField(max_length=80)
street2 = models.CharField(max_length=80, blank=True, null=True)
street3 = models.CharField(max_length=80, blank=True, null=True)
现在我想创建一个注册表单。我可以基于“User”创建一个“ModelForm”,但这不包括“Profile”和“Address”的字段(这些是必需的)。那么构建此表单的最佳方法是什么?我应该根本不使用“ModelForm”吗?
此外,如何使用相同的表单编辑复杂对象?我可以轻松地将“Profile”的实例传递回去,它持有对必要的“Address”和“Profile”对象的引用,但如何让它为我填写字段?
Address
之前你引用了它。如果你不想使用引号,那么你需要把它包裹起来,或者把Profile
移到Address
下面。 - orokusaki