【发布时间】:2018-05-03 23:21:45
【问题描述】:
我正在尝试创建一个Model,它代表两个用户(只有两个)之间的对话。
不知道如何创建两个字段,因为用户是等价的。
class Conversation(models.Model):
user_one = ForeignKey('auth.User')
user_two = ForeignKey('auth.User')
class Meta:
unique_together = ('user_one','user_two')
这是我设计模型的最佳方式吗?
然后是管理器方法:
def get_conversation(user_one,user_two):
c = Conversation.objects.filter(Q(user_one=user_one,user_two=user_two)|Q(user_one=user_one,user_two=user_two))
return c
或者有没有更舒适的方法来处理这种模型?例如使用ManyToManyField 并检查是否有两个且只有两个用户?:
users = ManyToManyField('auth.User')
【问题讨论】:
标签: python django database postgresql django-models