2016-08-11 100 views
2

我有使用Django Parler具有可轉換字段的模型,現在我正在嘗試爲單元測試創​​建對象。這裏是我有django parler創建測試對象

class Federation(TranslatableModel): 
    translations = TranslatedFields(
     name = models.CharField('name', max_length=50) 
    ) 
    created_at = models.DateTimeField(auto_now_add=True) 
    updated_at = models.DateTimeField(auto_now=True) 

    creator = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, related_name='federation_creator') 
    updater = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, related_name='federation_updater') 

    def __str__(self): 
     return self.name; 

現在我想在測試用例設置階段創建測試對象的示例模型:

Federation.objects.create(...) 

,但我不知道如何創建與翻譯領域對象。

我該如何做到這一點?

回答

3

爲此,您可以在Parler文檔建議在整個方式:

f = Federation() 

f.set_current_language('en') 
f.name = 'The British' 

f.set_current_language('en') 
f.name = 'Les rosbifs' 

f.save() 

但你也可以這樣做:

f = Federation.objects.language('en').create(
    name='The British', 
) 

f.set_current_language('en') 
f.name = 'Les rosbifs' 

f.save() 

這是你問什麼,更優雅,特別是如果你只有一個語言版本創建。

我在這裏發現了language('en')方法:https://github.com/django-parler/django-parler/blob/master/parler/managers.py#L34-L39