我在使用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
用作相关模型装置的自然键,以及查询此模型的通用方法。
我做错了什么?有什么建议吗?
答案 0 :(得分:1)
您尚未将自定义管理器与模型相关联。您需要明确地这样做:
class Item(models.Model):
...
objects = ItemManager()