0
嗨我的系統中有很多用戶被分類到不同的類型中。我想存儲所有這些用戶的地址詳細信息。例如,用戶可以是學生,學校或特許經營者。這裏的所有用戶都可以擁有與他們相關的地址信息。在Django的另一個模型中對同一模型的多個引用
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)
在這種情況下有2個引用用戶模型 - 一個通過USER_ID和另一個通過address.user雖然他們應該是指同一個實例。重複引用是不好的做法嗎?
我想在地址中忽略'user'外鍵,但我認爲如果沒有用戶,地址就不能存在。如何更好地模擬這個?
嗨@crodjer,在一個完全不同的場景中,我想存儲用戶的開支並對它們進行分類,我怎樣才能使用你已經解釋的相同概念?每筆費用記錄都將與用戶相關聯。對於每筆費用,用戶將不得不關聯他創建的其中一個類別。所以我會有'類別(用戶,名稱)'和'費用(用戶,金額,類別)'之類的東西。但用戶參考在這裏重複。由於沒有共享,我想我不能使用抽象類。 – Guruprasad
由於學校的地址和學生的地址是類似的信息,因此不應將它們存儲在一個表中而不是2中,如上面抽象類的示例中那樣? – Guruprasad