Djang模特朋友桌

2024-05-20 18:45:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Django为Contacts表(比如移动电话)编写一个模型。在

我的第一个想法是创建class Person,它将包含字段(name、phone、email、age、creation_date…),并创建包含两个字段(person1、person2)的class Contact。这意味着person1在联系人列表中有person2,但反之亦然。在

但是,现在我读了更多关于Django的文章,我发现我应该像这样扩展用户模型:

class Person(models.Model):
    user = models.OneToOneField(User)

然后我不确定我是否应该有联系人类,它将有两个我计划的人,或者我应该增加一个字段到人类,像这样:

^{pr2}$

你认为哪种方法更好/更正确?在

谢谢!在


Tags: djangoname模型agemodelsemailphone人类
1条回答
网友
1楼 · 发布于 2024-05-20 18:45:48

用许多字段的方法看来足够好了。如果要创建另一个模型来手动保存它,则需要添加逻辑以避免重复(可能还有其他事情)。在

另外,对于很多用户来说,你最终得到的是有联系人的用户…例如,你可以这样做:

my_user.person.contacts.all()
my_user.person.contacts.add(another_user)
my_user.person.contacts.filter(phone='123456')

使用另一种方法,您需要从联系人模型运行查询:

^{pr2}$

这并不复杂,但第一个对这个案子来说确实更有意义。在

相关问题 更多 >