Django-piston:如何获取 app_label 和 model_name?

8 投票
4 回答
7917 浏览
提问于 2025-04-16 13:45

之前我只是使用Django自带的序列化工具,它会自动添加一个模型字段。

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

我想知道怎么用django-piston来获取同样的模型字段?

我试过用fields = ('id', 'model'),但是没有成功。

4 个回答

0

最好使用元数据 Options.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
5

这是你在代码中用到的 app_label

    instance._meta.app_label

接下来是 model_name

   instance.__class__.__name__

而且通过 get_model 这个方法,你可以从字符串或者网址中获取模型名称!

13

我在我的模型里加了这个:

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

然后在我的BaseHandler里加了这个:

fields = ('id', 'model')

看起来可以正常工作。如果有人有其他的解决办法,欢迎分享哦。

撰写回答