【问题标题】:How to use 'get' method with foreign key field?如何在外键字段中使用“get”方法?
【发布时间】:2012-02-02 17:00:55
【问题描述】:

我有一个带有外键字段 user = models.ForeignKey(User) 的模型,它链接到 django.contrib.auth.models 中的用户模型。我想做以下事情:

ModelName.objects.get(user.username=request.user.username)

我在代码的上述位置收到以下错误:

SyntaxError: keyword can't be an expression

正确的语法是什么?

【问题讨论】:

    标签: django model foreign-keys


    【解决方案1】:

    试试ModelName.objects.get(user__username=request.user.username)

    编辑:根据您的模型关系,这可能会导致多条记录,在这种情况下 get() 会抛出异常,因此您可以改用它: ModelName.objects.filter(user__username=request.user.username)

    【讨论】:

    • 这成功了!我以前使用过这种语法,但由于某种原因我找不到它或记住它......
    【解决方案2】:

    另一种为特定用户检索对象的便捷方法是

    user = request.user
    objs = user.modelname_set.get(pk=x)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      相关资源
      最近更新 更多