我正在尝试创建3个模型:Person
、Address
和Anniversy
。计划是为每个人提供一个地址和一个周年纪念。但是每个地址和周年纪念可以有多个人。
到目前为止,我有以下几点,但我认为OneToMany(foreign key)
关系可能是错误的。也就是说,每个地址可以有一个人,但每个人可以有多个地址。
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=50)
birthday = models.DateField()
def __unicode__(self):
return u'%s' % (self.name)
class Address(models.Model):
person = models.ForeignKey(Person)
address = models.CharField(max_length=150)
def __unicode__(self):
return u'%s' % (self.address)
class Anniversy(models.Model):
person = models.ForeignKey(Person)
anniversy = models.DateField()
def __unicode__(self):
return u'%s' % (self.anniversy)
发布于 2020-02-10 18:08:23
我建议,如果使用基于应用程序的方法来分离逻辑关注点,那么使用ForeignKey
关系的字符串模型引用会更好一些。
因此,在Martijn的答案上进行扩展:
class Person(models.Model):
name = models.CharField(max_length=50)
birthday = models.DateField()
anniversary = models.ForeignKey(
'app_label.Anniversary', on_delete=models.CASCADE)
address = models.ForeignKey(
'app_label.Address', on_delete=models.CASCADE)
class Address(models.Model):
line1 = models.CharField(max_length=150)
line2 = models.CharField(max_length=150)
postalcode = models.CharField(max_length=10)
city = models.CharField(max_length=150)
country = models.CharField(max_length=150)
class Anniversary(models.Model):
date = models.DateField()
https://stackoverflow.com/questions/14663523
复制相似问题