2011-12-05 82 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()