2015-09-29 84 views
0

我是Django的新手,我正在編寫電話簿的簡單模型。Django模型與項目列表

我有對象PersonContact

每個人都可以有多個聯繫人。

我有兩種建模方法,但我不確定哪一個是正確的。

第一種方法:

class Contact(models.Model): 
    phone_number = models.CharField(max_length=20) 
    name = models.CharField(max_length=100,blank=True) 

class Person(models.Model): 
    owner = models.OneToOneField(User,unique=True,primary_key=True) 
    phone_number = models.CharField(max_length=20,unique=True) 
    name = models.CharField(max_length=100,blank=True) 
    contacts = models.ManyToManyField('Contact', blank=True) 

第二種方法:

class Contact(models.Model): 
    possessor = models.ForeignKey(Person,related_name='possessor') 
    phone_number = models.CharField(max_length=20) 
    name = models.CharField(max_length=100,blank=True) 

class Person(models.Model): 
    owner = models.OneToOneField(User,unique=True,primary_key=True) 
    phone_number = models.CharField(max_length=20,unique=True) 
    name = models.CharField(max_length=100,blank=True) 

我不知道哪種方法比較好(正確?),後來更容易進行查詢。

謝謝!

回答

1

第一個允許Contact屬於多個Person。第二個僅允許Contact屬於單個Person

+0

感謝您的回答。我認爲一個聯繫人只能屬於一個人。由於我想存儲該聯繫人的名稱(每個人都可以爲他們的聯繫人設置)。你認爲這是好方法嗎? – bla0009

+0

聽起來你的要求正在引導你走向第二個方案。 –

+0

謝謝!我會接受這個答案。 – bla0009

0

******寫下面的代碼在您的views.py文件

DEF my_view(請求): all_categories = Category.objects.all()

***** *將下面的代碼寫入HTML文件

{%for all_categories%}