Djangoproist:如何获取app_label+model_name?

2024-04-25 07:30:46 发布

您现在位置:Python中文网/ 问答频道 /正文

在我使用内置django序列化器并添加模型字段之前。

{
    pk: 1
    model: "zoo.cat"
}

如何使用django活塞获得相同的模型场?

我试过fields=('id','model'),但那不起作用。


Tags: django模型idfieldsmodel序列化内置cat
0条回答
网友
1楼 · 发布于 2024-04-25 07:30:46

作为app_label的代码:

    instance._meta.app_label

对于model_name

   instance.__class__.__name__

使用get_model可以从字符串或url获取模型名!

网友
2楼 · 发布于 2024-04-25 07:30:46

将此添加到我的模型:

def model(self):
    return "{0}.{1}".format(self._meta.app_label, self._meta.object_name).lower()

给我的BaseHandler:

fields = ('id', 'model')

似乎有用。如果有人有其他的解决方案,请随意张贴。

网友
3楼 · 发布于 2024-04-25 07:30:46

最好使用metaOptions.label

https://docs.djangoproject.com/en/2.1/ref/models/options/#label

MyModel._meta.label  # app_name.MyModel
MyModel._meta.label_lower  # app_name.mymodel

相关问题 更多 >