Ошибка перевода 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')

0 ответов

Другие вопросы по тегам