Django模型与项目列表

时间:2015-09-29 22:09:39

标签: python django django-models

我是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)

我不确定哪种方法更好(并且更正确?)以后更容易进行查询。

谢谢!

2 个答案:

答案 0 :(得分:1)

第一个允许Contact属于多个Person。第二个只允许Contact属于单个Person

答案 1 :(得分:0)

******在views.py文件中写下以下代码

def my_view(request):     all_categories = Category.objects.all()

******在HTML文件中编写以下代码

{all_categories%中的类别%}