python - formularios - ¿Cómo puedo solicitar campos en Django ModelForm?
radio button django (3)
Tengo un modelo de ''orden'':
class Order(models.Model):
date_time=models.DateTimeField()
# other stuff
Y estoy usando la clase Django ModelForm para representar un formulario, pero quiero mostrar los widgets de fecha y hora por separado. Ya se me ocurrió esto:
class Form(forms.ModelForm):
class Meta:
model = Order
exclude = (''date_time'',)
date = forms.DateField()
time = forms.TimeField()
El problema es que quiero poner estos campos en algún lugar entre ''otras cosas''
Añadiendo a la respuesta de Lukasz, en Django 2.0 el registro completo del formulario de administración con el orden de campo se vería así:
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)
Tenga en cuenta que los campos de fecha y hora se definen en la clase ModelForm y no en Meta class.
Puede usar fields = [..., ''date'', ''time'', ...] en la clase Meta de su formulario. Ver: http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#changing-the-order-of-fields
Simplemente cambie el orden de los atributos de clase en su models.py
. Funciona en 1.9