小编Mic*_*ner的帖子

Django模型,方法的@property装饰器

假设我有这样的模型:

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)

这是正确的方法吗?该解决方案有什么缺点吗?

python django django-models

4
推荐指数
1
解决办法
3809
查看次数

标签 统计

django ×1

django-models ×1

python ×1