Ответ 1
Вы можете использовать поля = [..., 'date', 'time',...] в мета-классе вашей формы. См.: http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#changing-the-order-of-fields
У меня есть модель заказа:
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()
Проблема в том, что я хочу помещать эти поля где-то между "другим материалом"
Вы можете использовать поля = [..., 'date', 'time',...] в мета-классе вашей формы. См.: http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#changing-the-order-of-fields
В дополнение к ответу 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.
Просто измените порядок атрибутов класса в models.py
. Работает в 1,9