Jor*_*ter 12 django django-admin
使用list_editable时ModelAdmin,有没有办法更改用于可编辑字段的窗口小部件?我在文档中找不到任何内容.似乎这将是你能够自定义的东西.
DS.*_*DS. 18
覆盖get_changelist_form您的ModelAdmin类的方法,如下所示:
def get_changelist_form(self, request, **kwargs):
kwargs.setdefault('form', MyAdminForm)
return super(MyModelAdmin, self).get_changelist_form(request, **kwargs)
Run Code Online (Sandbox Code Playgroud)
并单独定义修改后的MyAdminForm:
class MyAdminForm(forms.ModelForm):
class Meta:
model = MyModel
my_field = forms.DateField(widget=widgets.AdminDateWidget())
Run Code Online (Sandbox Code Playgroud)
这只是一个my_field仅由日期(没有时间)的小部件表示的示例.在列表视图中看起来好多了.
如果您只想更改小部件(已测试django 1.5)(您不需要设置标签等),请使用以下语法:
from django import forms
class OfferForm(forms.ModelForm):
class Meta:
model = Offer
widgets = {
'description' : forms.Textarea(
attrs={
'cols': '20',
}
)
}
Run Code Online (Sandbox Code Playgroud)
其中widgetsdict是dict,其键是字段的名称,值表示要覆盖的小部件.
作为django 1.5+的文档说明,它也可以:
class OfferAdmin(admin.ModelAdmin):
def get_changelist_form(self, request, **kwargs):
return OfferForm
Run Code Online (Sandbox Code Playgroud)
没有任何super()和kwargs杂耍.
| 归档时间: |
|
| 查看次数: |
4422 次 |
| 最近记录: |