Создание пользовательских форм в интерфейсе администратора Django с Parler

У меня есть экземпляр django 1.8 (и python 2), и я использую django-parler для перевода. Я хочу настроить интерфейс администратора (я хочу использовать django-autocomplete-light, но это не актуально). Но настройка интерфейса администратора с помощью parler кажется немного сложнее, чем я думал. Вот сокращенный пример.

models.py

from django.db import models
from parler.models import TranslatableModel, TranslatedFields


class Fruits(TranslatableModel):
    translations = TranslatedFields(
        fname=models.CharField(max_length=200)
    )

    def __unicode__(self):
        return self.fname

forms.py

from dal import autocomplete
from django import forms

from .models import Fruits

class FruitsForm(forms.ModelForm):
    class Meta:
        model = Fruits
        fields = (
            'fruits',
        )

admin.py

from django.contrib import admin
from parler.admin import TranslatableAdmin

from .forms import FruitsForm
from .models import Fruits


class FruitsAdmin(TranslatableAdmin):
    form = FruitsForm
    model = Fruits


admin.site.register(Fruits, FruitsAdmin)

Эта проблема

django.core.exceptions.FieldError: Unknown field(s) (fruits) specified for Fruits

Что я могу сделать?

1 ответ

Решение

РЕДАКТИРОВАНИЕ № 1:

После небольшого поиска я считаю, что вы должны сделать так, чтобы ваша форма наследовала parler.formsTranslatableModelForm чтобы работать как положено.

Измени свой FruitsForm соответствовать следующему:

from dal import autocomplete
from django import forms
from parler.forms import TranslatableModelForm

from .models import Fruits

class FruitsForm(TranslatableModelForm):
    class Meta:
        model = Fruits
        fields = (
            'fname',
        )

В случае fname давая вам ту же проблему, попробуйте установить fields='__all__'

Удачи:)

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