我有'订单'型号:
class Order(models.Model):
date_time=models.DateTimeField()
# other stuff
我正在使用Django ModelForm类来渲染表单,但我想分别显示日期和时间小部件。我想出了这个:
class Form(forms.ModelForm):
class Meta:
model = Order
exclude = ('date_time',)
date = forms.DateField()
time = forms.TimeField()
问题是我想把这些字段放在“其他东西”之间的某个地方
答案 0 :(得分:61)
您可以使用:
class Meta:
fields = [ ..., 'date', 'time', ... ]
请参阅文档:http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#changing-the-order-of-fields
答案 1 :(得分:1)
添加到Lukasz的答案,在Django 2.0中,完整的管理表单注册与字段排序将如下所示:
models.py
class Order(models.Model):
date_time = models.DateTimeField()
# other fields
admin.py
class OrderForm(forms.ModelForm):
datef = forms.DateField()
timef = forms.TimeField()
class Meta:
model = Order
exclude = ['date_time']
fields = (
'datef',
'timef',
# other fields
)
class OrderAdmin(admin.ModelAdmin):
form = OrderForm
admin.site.register(Order, OrderAdmin)
请注意,日期和时间字段在ModelForm类中定义,而不是在Meta类中定义。
答案 2 :(得分:-3)
只需更改models.py
中类属性的顺序即可。适用于1.9