Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

L'utilisation d'une classe ContentType dans les models et formulaires

0 votes

Pour faire simple :
Toutes les entrées de models doivent avoir des commentaires, et ce pour n'importe quel type d'entrée : image, vidéos, textes et même les commentaires des commentaires.
J'ai déjà mes classes models et mes classes formulaire mais je veux qu'il y ait possibilité de faire des commentaires là dessus pour cela je veux utiliser une classe ContentType pour que je n'ai pas à changer tous les models et maintenant et Je n'arrive pas à l'intégrer dans mon views...

Au fait j'ai créer beaucoup de classes de model et les formulaires avec forms.ModelForm correspondand aux models comme vous savez peut-être à chaque le formulaire le table l'enregistre Exemple:
Dans models.py

class Profile(models.Model):
       nom=moddels.CharField(max_length=255)
       prenom=models.CharField(max_length=255)
       date = ...
      ...
class Publication(models.Model):
        nom=models.CharFiled(max_length=255)
       pub=models.TextField()
      date = ....
      ....
class Video(models.Model):
         video =models.FileField(upload_to="video")
          date = ....
           ....

class Photo(models.Model):
        photo=models.ImageField(upload_to="photo")
       date = ......

Maintenant Je veux faire une classe 'ContentType' qui pourrait permettre à un utilisateur de commenter n'importe qu'elle entrée des models et même commenter des commentaires

class Commentaire(models.Model):
    auteur = models.CharField(max_length=255)
    contenu = models.TextField()
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')

    def __str__(self):
        return "Commentaire de {} sur {}".format(self.auteur, self.content_object)

Dans forms.py

from app.models import Profile, Publication, Video, Photo, Commentaire

class ProfileForm(forms.ModelForm):
     class Meta:
           model = Profile
           fields  ="__all__"
.....

Class CommentaireForm(forms.ModelForm)
     class Meta:
         model = Commentaire
        fields = ("contenu")

Excusez d'être trop long et les erreurs éventuelles
Maintenant pour les vues concernant les autres models et formulaires pas grand soucis mais avec le CotentType comment développer la vue qui puisse prendre l'élément qu'il va commenter et le joindre les bons ID.
Avec les créations d'objets avec le shell ça se passe bien, mais une fonction de vue m'a ménancé de suicide et jusque là pas de solutions .

demandé 10-Mar par Mic3 (104 points)
reclassée 10-Mar par max

Quelle version de Django ? poste ton code pour qu'on y voit plus clair. Rajoute des tags qui correspondent au contexte de ta question "django 1.8, contentType, etc"

Votre réponse

Preview

Votre nom à afficher ( en option ):
Vie privée: . Votre adresse de messagerie ne sera utilisée que pour l'envoi de ces notifications .
Vérification anti -spam:
Pour éviter cette vérification à l'avenir, Connectez vous ou inscrivez vous.
...