Джанго-поршень: как я могу получить app_label + model_name? - PullRequest
7 голосов
/ 15 марта 2011

Прежде чем я просто использовал встроенные сериализаторы django, он добавил поле модели.

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

Как я могу получить то же поле модели, используя django-поршень?

Iпробовал fields = ('id', 'model'), но это не сработало.

Ответы [ 3 ]

13 голосов
/ 16 марта 2011

Добавил это в мою модель:

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

И это в мой BaseHandler:

fields = ('id', 'model')

Кажется, работает.Если у кого-то есть другие решения, не стесняйтесь размещать их.

3 голосов
/ 14 апреля 2011

как ваш код для app_label:

    instance._meta.app_label

для model_name:

   instance.__class__.__name__

и с помощью get_model можно получить название модели из строки или URL-адреса!

0 голосов
/ 17 ноября 2018

Лучше использовать мета 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
...