如何创建带有两个字段作为用户模型类型的表

时间:2019-06-20 16:13:36

标签: python django

我正在尝试在Django项目中创建一个消息传递应用程序,我希望表格具有三个字段,“ sender”“ title”“ message”“ {{ 1}}”。标题和消息可以声明为char-field。但是我不能将发送者和接收者作为两个ForeignKey字段。我不知道在这里用什么。谁能帮我解决这个问题?

我尝试使用用户模型将两个字段都声明为ForeignKey。但这没有用。

receiver

错误:

from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class msgs(models.Model):
    to = models.OneToOneField(User, on_delete=models.CASCADE)
    frm = models.OneToOneField(User, on_delete=models.CASCADE)
    title = models.CharField(max_length = 255)
    body = models.CharField(max_length=2000)

1 个答案:

答案 0 :(得分:0)

如错误消息所述,由于您与同一模型有两个关系,因此需要为其指定一个相关名称。

class msgs(models.Model):
    to = models.OneToOneField(User, on_delete=models.CASCADE, related_name='to_user')
    frm = models.OneToOneField(User, on_delete=models.CASCADE, related_name='from_user')
    title = models.CharField(max_length = 255)
    body = models.CharField(max_length=2000)

其他一些提示:

  • 使用大写字母作为类名(Message类或Msg类)
  • 如果您希望用户进行多次对话,请使用models.ForeignKey而不是models.OneToOneField