我尝试了类似的东西:
class PedidoForm(forms.ModelForm):
class Meta:
model = Pedido
widgets = {
'nota': forms.Textarea(attrs={'cols': 80, 'rows': 20}),
}
但它在列表视图和单个对象视图中都发生了变化。我想仅为单个对象视图更改int。我可以这样做吗?
我想要这个:
但不是这样:
答案 0 :(得分:1)
不要覆盖Meta类中的窗口小部件,只需将窗口小部件设置为覆盖__init__
,并在管理类中指定窗体。您指定的表单将仅用于添加/更改视图。例如:
#forms.py
from django import forms
class PedidoAdminForm(forms.ModelForm):
class Meta:
model = Pedido
def __init__(self, *args, **kwargs):
super(PedidoAdminForm, self).__init__(*args, **kwargs)
self.fields['nota'].widget = forms.Textarea()
#admin.py
from django.contrib import admin
from your_app.forms import PedidoAdminForm
from your_app.models import Pedido
class PedidoAdmin(admin.ModelAdmin):
form = PedidoAdminForm
list_editable = ['nota']
这在Django 1.3中对我有用。希望能帮到你。