众所周知,通过设置布尔属性,可以轻松地在Django管理器中显示方法返回值为boolean:
class MyModel(models.Model): def is_something(self): if self.something == 'something': return True return False is_something.boolean = True
如何实现与财产相同的效果,如下列情况?
class MyModel(models.Model): @property def is_something(self): if self.something == 'something': return True return False
解决方法
等待更好的解决方案出现,我以下列方式解决了:
class MyModel(models.Model): def _is_something(self): if self.something == 'something': return True return False _is_something.boolean = True is_something = property(_is_something)
然后我将引用ModelAdmin子类中的_is_something方法:
class MyModelAdmin(admin.ModelAdmin): list_display = ['_is_something']
而is_something属性否则:
if my_model_instance.is_something: print("I'm something")