2010-05-03 5 views
2

Je suis en train d'obtenir un modèle abstrait de travail dans Django et je frappé un mur de briques en essayant de définir la related_name par la recommandation ici: http://docs.djangoproject.com/en/dev/topics/db/models/#be-careful-with-related-nameapp_label dans un modèle abstrait Django

C'est ce que mon modèle abstrait ressemble :

class CommonModel(models.Model): 

    created_on = models.DateTimeField(editable=False) 
    creared_by = models.ForeignKey(User, related_name="%(app_label)s_%(class)s_created", editable=False) 
    updated_on = models.DateTimeField(editable=False) 
    updated_by = models.ForeignKey(User, related_name="%(app_label)s_%(class)s_updated", editable=False) 

    def save(self): 
     if not self.id: 
      self.created_on = datetime.now() 
      self.created_by = user.id 

     self.updated_on = datetime.now() 
     self.updated_by = user.id 
     super(CommonModel, self).save() 

    class Meta: 
     abstract = True 

Mon modèle commun est en [PROJECT_ROOT] /models.py. Il est l'objet parent de ce modèle, qui est situé dans une application appelée Feedback [PROJECT_ROOT] /feedback/models.py:

from django.db import models 
from mediasharks.models import CommonModel 

class Feedback(CommonModel): 
    message = models.CharField(max_length=255) 
    request_uri = models.CharField(max_length=255) 
    domain = models.CharField(max_length=255) 
    feedback_type = models.IntegerField() 

Fondamentalement, je suis en train de mettre en place un modèle commun pour que je toujours être capable de dire quand et par qui les entrées de base de données ont été créées.

Quand je lance "python manage.py valider" je reçois ce message d'erreur: KeyError: 'app_label'

Suis-je manque quelque chose ici?

Répondre

1

Notez le texte en gras sur votre lien: "Modifié en version de développement". Si vous n'utilisez pas une extraction récente du tronc Django - par exemple, vous êtes sur la dernière version publiée, 1.1 - vous devriez utiliser this link pour la documentation. Cette version du texte ne fait aucune référence à app_label, car elle n'a pas encore été introduite.

+0

Ah, merci pour cela, Daniel. Je lirai les docs plus attentivement la prochaine fois. – rayan

Questions connexes