作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个自定义 TagField 表单域。
class TagField(forms.CharField):
def __init__(self, *args, **kwargs):
super(TagField, self).__init__(*args, **kwargs)
self.widget = forms.TextInput(attrs={'class':'tag_field'})
如上所示,它使用了一个 TextInput 表单字段小部件。但在管理员中,我希望使用 Textarea 小部件显示它。为此,有 formfield_overrides
Hook ,但它不适用于这种情况。
管理员声明是:
class ProductAdmin(admin.ModelAdmin):
...
formfield_overrides = {
TagField: {'widget': admin.widgets.AdminTextareaWidget},
}
这对表单字段小部件没有影响,标签
仍然使用 TextInput 小部件呈现。
非常感谢任何帮助。
--
奥马特
最佳答案
django 管理员为其许多字段使用自定义小部件。覆盖字段的方法是创建一个用于 ModelAdmin 对象的表单。
# forms.py
from django import forms
from django.contrib import admin
class ProductAdminForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ProductAdminForm, self).__init__(*args, **kwargs)
self.fields['tags'].widget = admin.widgets.AdminTextareaWidget()
然后,在您的 ModelAdmin 对象中,您指定以下形式:
from django.contrib import admin
from models import Product
from forms import ProductAdminForm
class ProductAdmin(admin.ModelAdmin):
form = ProductAdminForm
admin.site.register(Product, ProductAdmin)
此时您还可以覆盖查询集:例如根据模型中的另一个字段过滤对象(因为 limit_choices_to
无法处理)
关于Django Admin - 覆盖自定义表单字段的小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3469979/
我尝试通过正则表达式将文本中的单引号更改为双引号。 (单字)示例:我走了。 You gona fly to planet 'Ziqtos' => 我需要在 I'm 中保留单引号,并在 You gona
我正在构建一个 API,其中大部分将包含 JSON 和 HTML 内容。但是一些非常具体的端点只呈现 true 或 false,并且还在 POST 中接受 true 或 false。这是请求或响应的整
我是一名优秀的程序员,十分优秀!