Sagen wir, ich bin mit dem Standard-auth.models.User
und meine benutzerdefinierten Profile
und Address
Modelle, die wie folgt aussehen:Django-Modelle mit OneToOne-Beziehungen?
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)
Jetzt möchte ich ein Anmeldeformular erstellen. Ich könnte eine ModelForm
basierend auf User
erstellen, aber das wird keine Felder für die Profile
und Address
(die erforderlich sind) enthalten. Was ist der beste Weg, dieses Formular zu erstellen? Sollte ich überhaupt ModelForm
verwenden?
Außerdem, wie würde ich das gleiche Formular für die Bearbeitung des komplexen Objekts verwenden? Ich könnte leicht eine Instanz von Profile zurückgeben, die Referenzen auf die notwendigen Adress- und Profilobjekte enthält, aber wie bekomme ich es, um die Felder für mich auszufüllen?
@Mark In Ihrem Beispiel haben Sie vor dem Erstellen die Adresse referenziert. Sie müssen es in Anführungszeichen setzen, um dies zu tun, oder "Profil" unter "Adresse" verschieben, wenn Sie keine Anführungszeichen verwenden möchten. – orokusaki
@orokusaki: Ich denke, ich habe die von zwei verschiedenen Orten eingefügt, oder ich hätte einen Fehler bekommen. Wusste nicht, dass ich nur Zitate verwenden könnte. Vielen Dank. – mpen