2011-12-05 78 views
2

我使用Django纳尼http://readthedocs.org/docs/django-nani/en/latest/,想定义两个模型(一个继承了另一个):Django的纳尼和模型继承

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() 

然而,在使用时执行syncdb我碰到下面的错误。

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

有什么解决办法?

回答

0

您必须添加 “翻译” 到EquipBase insted的ItemBase和使用models.Model作为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()