【问题标题】:Django-piston: How can I get app_label + model_name?Django-piston:我怎样才能得到 app_label + model_name?
【发布时间】:2011-07-16 01:56:03
【问题描述】:

在我只是使用内置的 django 序列化程序之前,它添加了一个模型字段。

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

如何使用 django-piston 获得相同的模型字段?

我尝试了 fields = ('id', 'model') 但没有奏效。

【问题讨论】:

    标签: python django django-piston


    【解决方案1】:

    将此添加到我的模型中:

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

    这是我的 BaseHandler:

    fields = ('id', 'model')
    

    似乎有效。如果有人有其他解决方案,请随时发布。

    【讨论】:

    • 鉴于在 django 代码(1.10 版)中它以类似的方式实现,没有更优雅的解决方案......
    【解决方案2】:

    作为app_label 的代码:

        instance._meta.app_label
    

    对于model_name

       instance.__class__.__name__
    

    get_model 可以从字符串或 url 中获取模型名称!

    【讨论】:

      【解决方案3】:

      最好使用元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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-06
        • 2016-06-17
        • 1970-01-01
        相关资源
        最近更新 更多