我需要在Django管理表单中为我的所有用户字段分配一个boostrap类,我编写了这段代码,但它不起作用。
formfield_overrides = {
models.CharField: {'widget': TextInput(attrs={'class': 'form-control'})},
models.CharField: {'widget': EmailInput(attrs={'class': 'form-control'})},
models.DateField: {'widget': DateTimeInput(attrs={'type': 'date', 'class': 'form-control'})},
models.EmailField: {'widget': EmailInput(attrs={'class': 'form-control'})},
models.BooleanField: {'widget': CheckboxInput(attrs={'class': 'form-control'})},
}
你能帮助我吗?
答案 0 :(得分:1)
您的表格
#yourapp/forms.py
class YourForm(forms.ModelForm):
class Meta:
model = YourModel
fields = (field1,field2,field3,)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self._meta.fields:
attrs = {'class':'form-control'}
if self.fields[field].widget.__class__.__name__ == "DateTimeInput":
attrs.update({'type':'date'})
self.fields[field].widget.attrs.update(attrs)
接下来,admin.py
#yourapp/admin.py
from django.contrib import admin
from .forms import YourForm
from .models import YourModel
class AdminModel(admin.ModelAdmin):
form = YourForm
admin.site.register(YourModel,AdminModel)
您可以从documentation了解更多信息。
答案 1 :(得分:0)
如果您想覆盖管理员中使用的某些字段选项,请查看详细信息:https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_overrides。 formfield_overrides最常见的用途是为特定类型的字段添加自定义窗口小部件。