【问题标题】:get_or_create with ManyToManyFieldget_or_create 与 ManyToManyField
【发布时间】:2013-06-12 02:57:25
【问题描述】:

我有模特

class Conversation(models.Model):
    users = models.ManyToManyField(User)

在一个表单中,我需要检查是否存在与这些用户的对话。我试过了

Conversation.objects.get_or_create(users=form.cleaned_data['users'])

但我收到错误 'users' is an invalid keyword argument for this function。我可以做些什么来解决我的问题?

【问题讨论】:

  • 在我看来这个模型没有任何意义。特定组的用户只能进行一次对话?如果它是真的,你应该在 ConversationManager 类中为这种情况创建特定的方法。
  • 我没有指定所有字段。用户可以创建与其他用户的对话。我还有一个消息模型,它有一个对话模型的外键
  • 我认为你应该像 facebook 那样做。 www.facebook.com/messages/conversation-id.13123123 寻找基于用户而不是 id 的独特对话是一种奇怪的方法。
  • 我正在尝试完全像 Facebook 那样做。你不认为他们有一个对话模型和一个消息模型吗?在移动设备上,您可以选择为对话命名,所以我想这与我尝试的方式相同
  • 所以没有理由根据用户使用get_or_create。

标签: django django-models django-forms django-formwizard


【解决方案1】:

您可以尝试将self.cleaned_data['users'] 替换为form.cleaned_data['users'],其中form 不满足您的表单。

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 1970-01-01
    • 2019-08-10
    • 2012-08-22
    • 2020-02-01
    • 2023-03-28
    • 2014-09-04
    相关资源
    最近更新 更多