0

我在使用 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用作相关模型夹具的自然键,以及查询此模型的通用方法。

我究竟做错了什么?有什么建议么?

4

1 回答 1

1

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

class Item(models.Model):
    ...
    objects = ItemManager()
于 2014-05-16T20:08:15.270 回答