【发布时间】:2011-09-19 07:16:02
【问题描述】:
您好,我的系统中有很多用户被分类为不同的类型。我想存储所有这些用户的地址详细信息。例如,用户可以是学生、学校或特许经营商。这里的所有用户都可以有一个与之关联的地址信息。
from django.db import models
from django.contrib.auth.Models import User
class Address(models.Model):
user = models.OneToOneField(User)
address = models.TextField()
class Student(models.Model):
user_id = models.ForeignKey(User)
address = models.ForeignKey(Address)
class School(models.Model):
user_id = models.ForeignKey(User)
address = models.ForeignKey(Address)
contact_person_name = models.CharField(max_length=50)
在这种情况下,有两个对 User 模型的引用——一个通过 user_id,另一个通过 address.user,尽管它们应该引用同一个实例。重复引用是不好的做法吗?
我想在地址中省略“用户”外键,但我认为没有用户就不能存在地址。如何更好地建模?
【问题讨论】:
标签: django-models foreign-key-relationship