je l'ai déclaré deux de mes modèles de cette façon:problème de champ ForeignKey dans Django
class EmailAddress(models.Model):
customer = models.ForeignKey(Customer)
email_address = models.CharField(max_length=200)
def __unicode__(self):
return self.email_address
class Customer(models.Model):
.
.
.
email_address = models.ForeignKey(EmailAddress)
def __unicode__(self):
name = ''+str(self.title)+" "+str(self.first_name)+" "+str(self.last_name)
return name
L'idée est qu'un client peut avoir plusieurs adresses e-mail associées à lui/elle ... le problème est de savoir comment faire ceci correctement ... comme vous pouvez le voir de mon code ci-dessus, le champ de clé étrangère client doit être après la classe de client, mais le champ de clé étrangère d'adresse de courrier électronique doit être après la classe EmailAddress ... comment trier cette problème?
Non lié à votre question, mais il y a un bug sérieux avec votre méthode unicode - il ne retourne pas unicode. Si l'un de vos clients a des caractères non ASCII dans son titre ou son nom, Python se bloque horriblement. Faites ceci à la place: 'name = u '% s% s% s'% (self.title, self.first_name, self.last_name)' –
merci pour le conseil Daniel – Stephen