Ошибка перевода hvad __str__ возвращает NoneType
Я пытаюсь локализовать некоторые из моих моделей и принял хвад. Работает нормально но не когда в родственных моделях. У меня есть следующие две модели:
class Family(TranslatableModel):
sciencename=models.CharField(max_length=50,verbose_name='Scientific Name',blank=True,null=True)
translations=TranslatedFields(
name=models.CharField(max_length=50, unique=True),
note=models.TextField(null=True,blank=True)
)
def __str__(self):
return self.safe_translation_getter('name',)
А ребенок:
class Child(TranslatableModel):
sciencename=models.CharField(max_length=50,verbose_name='Scientific Name',blank=True,null=True)
family=models.ForeignKey(Family,related_name="child_family")
translations=TranslatedFields(
name=models.CharField(max_length=50)
)
def __str__(self):
return 'Dude'#' , '.join([self.family.name,self.safe_translation_getter('name',)])
class Meta:
#ordering=('family','name',)
unique_together=(('name','language_code'))
Теперь я хочу получить доступ к этому со страницы администратора и иметь это в admin.py, который генерирует TypeError. Без языков в нем были перечислены семьи, поэтому я могу выбрать одну при добавлении ребенка:
ОБНОВЛЕНИЕ: Я определил, что str в модели Family ничего не возвращает, и это является причиной проблемы. Но у меня есть данные.
class ChildAdmin(TranslatableAdmin):
# ... other admin stuff
def get_fieldsets(self, request, obj=None):
return (
(_('Common fields'), {
'fields': ('sciencename','family' ),
}),
(_('Translations'), {
'fields': ('name',),
}),
)
change_form_template = 'change_form.html'
list_display = ('__str__','family','sciencename', )
def apply_select_related(self, qs):
return qs.prefetch_related('family')
def get_family(self, obj):
return obj.family
def get_name(self,obj):
return obj.name
get_name.short_description = _('Name')