Mic*_*ner 4 python django django-models
假设我有这样的模型:
class Article(models.Model):
...
def get_route(self):
...
return data
Run Code Online (Sandbox Code Playgroud)
当我想显示get_route()管理面板中返回的值时,我必须创建这样的自定义方法:
def list_display_get_route(self, obj):
return obj.get_route()
list_display = ('list_display_get_route', ...)
Run Code Online (Sandbox Code Playgroud)
我最近发现,如果我使用来装饰get_route(),@property则无需使用,list_display_get_route()并且可以使用以下内容:
models.py
@property
def get_route(self):
...
return data
Run Code Online (Sandbox Code Playgroud)
管理员
list_display = ('get_route', ...)
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?该解决方案有什么缺点吗?
即使不将get_routein list_display用作属性,也可以使用in 。
class Article(models.Model):
def get_route(self):
...
return data
class ArticleAdmin(admin.ModelAdmin):
list_display = ('get_route', ...)
Run Code Online (Sandbox Code Playgroud)
有关list_display支持的值类型列表,请参阅文档。第四个示例“代表模型上属性的字符串”等效于您的get_route方法。
property如果愿意,可以使用装饰器,但在这种情况下,命名它会更有意义route。
@property
def route(self):
...
return data
class ArticleAdmin(admin.ModelAdmin):
list_display = ('route', ...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3809 次 |
| 最近记录: |