2016-08-11 2 views
2

장고 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