Джанго-Хвад TranslatableAdmin с ошибкой менеджера
Я пытаюсь сделать это работает
admin.py
class TapasInline(TranslatableStackedInline):
model = Tapa
can_delete = True
extra = 0
verbose_name = 'Tapas'
verbose_name_plural = 'Tapas'
fields = ('name','description','photo', 'tags')
...
class BarAdmin(TranslatableAdmin):
inlines = (TapasInline,)
...
admin.site.register(Bar,BarAdmin)
models.py
class Tapa(TranslatableModel):
translations = TranslatedFields(
name = models.CharField(max_length=255,verbose_name='Nombre de la tapa'),
description = models.TextField(verbose_name='Descripcion de la tapa')
)
photo = models.ImageField(verbose_name='Foto de la tapa')
average_rating = models.FloatField(verbose_name='Puntuación media de la tapa',default=-1)
bar = models.ForeignKey(Bar,verbose_name='Bar')
tags = models.ManyToManyField(Tag,verbose_name='Etiquetas')
def __unicode__(self):
return self.lazy_translation_getter('name')
, но я получаю эту ошибку:
hvad.exceptions.WrongManager: To access translated fields like 'name' from an untranslated model, you must use a translation aware manager. For non-translatable models, you can get one using hvad.utils.get_translation_aware_manager.
For translatable models, use the language() method.
[Джанго ==1,8]
Что я делаю неправильно? Как я могу решить это?
заранее спасибо
1 ответ
К сожалению, прямое использование переведенных полей в настройках администратора пока не поддерживается. Это будет в следующем выпуске (для большинства из них).
Код виновника находится в модуле системных проверок администратора. Это сработало бы, но проверка системы, включенная в admin, действительно настаивает на том, что она не разрешит поле, которое не распознает.
В то же время вы можете обойти проверку администратора с помощью get_fields
метод вместо fields
приписывать. Это должно сделать трюк:
def get_fields(self, request, obj=None):
return ('name','description','photo', 'tags')
Пожалуйста, скажите мне, если это работает. Я бы ответил раньше, но я не торчу здесь много.