【问题标题】:How to use List of model in Django?如何在 Django 中使用模型列表?
【发布时间】:2017-05-15 02:28:14
【问题描述】:

我正在尝试这样做:

Class conversation(models.Model):
      user1, user2 =; # this is from User table
      messages = List(Message) # where Message is also a model

Class Message(models.Model):
      sender, reciever ; # this is user ID from User Model
      ...... # many other attribute
      message = TextField()

这只是一个伪代码。任何人,请向我解释如何做到这一点。 如果可能的话,给我一个与此相关的合适的教程链接。谢谢。

【问题讨论】:

  • 为什么不在消息模型中添加会话作为外键?
  • 其实我不想用外键。我只想在对话表中存储消息列表。我可以那样做吗????
  • 如果Message 是一个模型,那么你必须使用一个外键。如果是其他一些数据,您可以查看 ArrayField 以开始文本数组docs.djangoproject.com/en/1.11/ref/contrib/postgres/fields/…
  • 与 Django 无关,而是 SQL,请阅读:stackoverflow.com/questions/3070384/…
  • 我们可以这样使用吗:conversation = { user1 = A, user2 = B, Messages=[ {message1},{message2},{message3} ]}

标签: django django-models


【解决方案1】:
Class Conversation(models.Model):
      user1, user2 =; # this is from User table
      ...... # many other attribute

Class Message(models.Model):
      sender, reciever ; # this is user ID from User Model
      ...... # many other attribute
      conversation = models.ForeignKey(Conversation, on_delete=models.CASCADE, related_name='messages')

要查看对话实例的消息,您可以像这样向后跟踪关系

conversation = Conversation.objects.get(...)
conversation_messages = conversation.messages.all()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-16
    • 2018-01-11
    • 2016-07-15
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多