content_type = models.ForeignKey(ContentType,editable=False,null=True)
self.content_type = ContentType.objects.get_for_model(self.__class__)
et ceci :
def as_event_class(self):
content_type = self.content_type
model = content_type.model_class()
if (model == Event):
return self
return model.objects.get(id=self.id)
Merci encore pour l'aide.
]]>class Favorite(models.Model):
user = models.ForeignKey(User)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
Le content_object, le content_type et le object_id
]]>Merci pour ta réponse.
Je reprends une application qui est faite à 90%.
ContentType est utilisé dans le code mais ce n'est pas moi qui l'ai intégré.
Merci pour ton aide.
]]>Ben lorsque tu utilises Content Type tu le sais généralement.
Je ne comprends pas ta question. As-tu une erreur qui te parle de ContentType par exemple ?
Il peut y avoir un problème lorsque tu fais un syncdb avec un initial_data qui contient des content types.
Pour éviter ce problème, tu peux faire un dumpdata avec ces valeurs :
python manage.py dumpdata --format yaml --indent=4 --exclude=contenttypes --exclude=sessions > initial_data.yaml
Tu peux aussi faire ton syncdb sans initial_data dans un premier temps, vider la base de ContentType et relancer le syncdb avec ton initial_data.
Le problème c'est que tu risques d'avoir des incohérences de content_types. (S'il modifie l'ordre des ID par l'ajout d'une nouvelle app par exemple)
Il faudra bien faire attention d'y veiller.
Mais si tu n'utilises pas les content_types, tu n'as pas à t'en soucier.
]]>Bonjour beegees.
Pour faire simple, le content type te permet de faire une ForeignKey sur plusieurs types d'objets.
Imaginons que tu fasses un site internet avec un système de commentaires.
Tu vas avoir des commentaires sur les vidéos, les news, les photos et les commentaires des autres.Plutôt que de faire un système de commentaire pour chacun avec une grande part de copier/coller, tu peux utiliser le content type pour lier ton commentaire soit à un objet video, soit à une news soit à une photo soit à un autre commentaires.
Grâce au mécanisme de ContentType tu pourras récupèrer à chaque fois les commentaires de ton objet.
Avec une seule app plus simplement maintenable et vulgarisable.Avec Django c'est DRY (Don't Repeat Yourself), Pluggable et Réutilisable
Bonjour Rémy,
Merci pour ta réponse.
Je vais essayer de trouver dans quelle partie de mon code on utilise ContentType.
Est-ce qu'un bout de code m'informe qu'on utilise ContentType ?
Merci encore pour l'aide.
]]>Pour faire simple, le content type te permet de faire une ForeignKey sur plusieurs types d'objets.
Imaginons que tu fasses un site internet avec un système de commentaires.
Tu vas avoir des commentaires sur les vidéos, les news, les photos et les commentaires des autres.
Plutôt que de faire un système de commentaire pour chacun avec une grande part de copier/coller, tu peux utiliser le content type pour lier ton commentaire soit à un objet video, soit à une news soit à une photo soit à un autre commentaires.
Grâce au mécanisme de ContentType tu pourras récupèrer à chaque fois les commentaires de ton objet.
Avec une seule app plus simplement maintenable et vulgarisable.
Avec Django c'est DRY (Don't Repeat Yourself), Pluggable et Réutilisable
]]>J'aimerais savoir à quoi sert exactement ContentType
from django.contrib.contenttypes.models import ContentType
J'ai lu la documentation Django, et ça me dit entre autre ceci :
Django includes a contenttypes application that can track all of the models installed in your Django-powered project, providing a high-level, generic interface for working with your models.
Ce qui m'interpelle, c'est ceci :
a high-level, generic interface for working with your models
Qu'est-ce que cela nous apporte de plus de travailler avec ContentTye ?
Merci d'avance pour l'aide.
]]>