我在管理员list_display中添加了一个名为'is_dotcom'的模型布尔字段,其实现是:
email = models.EmailField(max_length=254)
def is_dotcom(self):
return self.email.lower().endsWith(".com")
is_dotcom.admin_order_field = 'email'
is_dotcom.boolean = True
is_dotcom.short_description = 'Company?'
但我的管理页面上的所有这些收益都是“(无)”。我期待真/假(虽然有时我的布尔人显示为绿色支票或红色没有进入标志,任何人都知道为什么会这样?)
我已将此代码基于django tutorial中的示例。
我假设正在显示“(None)”,因为is_dotcom()方法引发了一个django正在捕获的AttributeError。我猜测在EmailField上调用.lower()是合法的,但我不确定(你们为参考文档做了什么?)谢谢。
答案 0 :(得分:1)
问题出在这一行:
return self.email.lower().endsWith(".com")
方法是.endswith()
请注意没有驼峰式的情况。
重现错误的简化示例:
>>> 'foo'.endsWith('test')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'endsWith'