2011-12-05 2 views
2

J'utilise Django nani http://readthedocs.org/docs/django-nani/en/latest/ et que vous souhaitez définir deux modèles (hérite une autre):Django nani et l'héritage modèle

class ItemBase(TranslatableModel): 
    translations = TranslatedFields(
     name = models.CharField(max_length=40) 
    ) 
    slug = models.SlugField(unique=True, max_length=40) 
    description = models.CharField(max_length=1000) 
    worth = models.PositiveIntegerField() 

class EquipBase(ItemBase): 
    def __init__(self, *args, **kwargs): 
     super(EquipBase, self).__init__(*args, **kwargs) 

    level = models.PositiveSmallIntegerField() 

Cependant, je reçois l'erreur suivante lors de l'utilisation syncdb.

django.core.exceptions.ImproperlyConfigured: No TranslatedFields found on <class 'main.world.items.models.EquipBase'>, subclasses of TranslatableModel must define TranslatedFields.

Quelle est la solution?

Répondre

0

Vous devez ajouter les "traductions" au EquipBase insted de ItemBase et utiliser models.Model en tant que super classe pour ItemBase:

class ItemBase(models.Model): 
    slug = models.SlugField(unique=True, max_length=40) 
    description = models.CharField(max_length=1000) 
    worth = models.PositiveIntegerField() 



class EquipBase(ItemBase): 
    translations = TranslatedFields(
     name = models.CharField(max_length=40) 
    ) 

    def __init__(self, *args, **kwargs): 
     super(EquipBase, self).__init__(*args, **kwargs) 

    level = models.PositiveSmallIntegerField() 
Questions connexes