python - 使用 Parler 在 Django 管理界面中创建自定义表单

标签 python django django-forms django-admin django-parler

我有一个 django 1.8 实例(和 python 2),我正在使用 django-parler 进行翻译。我想自定义管理界面(我想使用 django-autocomplete-light,但这不相关)。但使用 parler 自定义管理界面似乎比我想象的要棘手一些。这是一个简化的示例。

模型.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:为 Fruits 指定未知字段(水果)

我能做什么?

最佳答案

编辑#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__'

祝你好运:)

关于python - 使用 Parler 在 Django 管理界面中创建自定义表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43319646/

相关文章:

django:BoundField和Form Field之间的关系?

python - Django REST Framework 授权 token

python - django ModelForm 覆盖字段无效

python - 如何访问模板中的表单日期字段

python - Tensorflow 没有在 Spyder 中输出任何日志信息?

python - 将代码拆分为模块(约定)

python - Visual Studio Code 不建议 Python 对象属性

python - 是否可以在不进行强制转换的情况下初始化 float32 或 float16 的随机数组?

python - 如何在 Django 下拉 HTML 表单中编辑数据?

python - 在基于类的 View (CBV) 中引用当前用户