Джанго-Хвад 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')

Пожалуйста, скажите мне, если это работает. Я бы ответил раньше, но я не торчу здесь много.

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