Создание пользовательских форм в интерфейсе администратора 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__'
Удачи:)