【问题标题】:Get_by_natural_key throwing AttributeError? [duplicate]Get_by_natural_key 抛出 AttributeError? [复制]
【发布时间】:2014-07-05 08:55:24
【问题描述】:

我在使用 Django 的 get_by_natural_key() 方法时遇到了问题。 (Django 1.6)

我的商品使用如下代码编号:ABC_1234

经理和模特:

class ItemManager(models.Manager):
    def get_by_natural_key(self, code_number_):
        return self.get(code_number=code_number_)

class Item(models.Model):
    code_number = models.CharField('Code Number',
        max_length = 10, unique = True)
    def __unicode__(self):
        return self.code_number
    def natural_key(self):
        return (self.code_number,)

在我的测试中,我有这个查询...

Item.objects.get_by_natural_key(code_number)

...抛出此错误:

AttributeError: 'Manager' object has no attribute 'get_by_natural_key'

我想将此code_number 用作相关模型夹具的自然键,以及查询此模型的通用方法。

我做错了什么?有什么建议吗?

【问题讨论】:

    标签: python django natural-key


    【解决方案1】:

    您尚未将自定义管理器与模型相关联。您需要明确地这样做:

    class Item(models.Model):
        ...
        objects = ItemManager()
    

    【讨论】:

    • 是的,错过了。非常感谢!我真的很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 2020-09-28
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    相关资源
    最近更新 更多