2016-08-11 4 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() 

について、あなたは求めているものであり、よりエレガントです、特に作成する言語バージョンが1つしかない場合は特にそうです。

私はここでlanguage('en')メソッドを発見しました:https://github.com/django-parler/django-parler/blob/master/parler/managers.py#L34-L39

関連する問題