【问题标题】:Django get() query not workingDjango get() 查询不起作用
【发布时间】:2010-05-27 10:21:07
【问题描述】:
this_category = Category.objects.get(name=cat_name)

给出错误:get() takes exactly 2 non-keyword arguments (1 given)

我正在使用 appengine 助手,所以这可能会导致问题。类别是我的模型。 Category.objects.all() 工作正常。过滤器也同样不起作用。

谢谢,

【问题讨论】:

  • Django 模型不适用于带有补丁或帮助程序的 App Engine。你是怎么做到的?你能包括你的模型的来源吗?

标签: django google-app-engine django-models django-queryset


【解决方案1】:

您有任何名为namecat_name 的函数吗?如果是这样,请尝试更改它们或您正在使用的变量名称,然后重试。

【讨论】:

  • 不,如果我在括号内将其更改为 id=1,则没有名为 name 或 cate_name 的函数它仍然不起作用
【解决方案2】:

帮助程序通过appengine_django.models.ModelManager 将 Django 模型管理器(在本例中为 Category.objects)映射回模型的类实例。通过继承链,您最终会到达appengine.ext.db.Model.get(cls, keys, **kwargs),这就是您看到此错误的原因。帮助程序不支持与 Django 相同的 get 接口。如果你不想通过主键get,你必须使用过滤器

要进行查询,您需要像这样使用 GAE 过滤器功能:

this_category = Category.objects.all().filter('name =', cat_name).get()

【讨论】:

    猜你喜欢
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    相关资源
    最近更新 更多