58 votes

Comment obtenir le nom du modèle ou le type de contenu d'un objet Django ?

Disons que je suis dans le code de sauvegarde. Comment puis-je obtenir le nom du modèle ou le type de contenu de l'objet, et l'utiliser ?

 from django.db import models

class Foo(models.Model):
    ...
    def save(self):
        I am here....I want to obtain the model_name or the content type of the object

Ce code fonctionne, mais je dois connaître le model_name :

 import django.db.models
from django.contrib.contenttypes.models import ContentType

content_type = ContentType.objects.get(model=model_name)
model = content_type.model_class()

107voto

gravelpot Points 573

Vous pouvez obtenir le nom du modèle à partir de l'objet comme ceci :

 self.__class__.__name__

Si vous préférez le type de contenu, vous devriez pouvoir l'obtenir comme ceci :

 from django.contrib.contenttypes.models import ContentType
ContentType.objects.get_for_model(self)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X