2010-05-23 167 views
33

我有一个“秩序”型号:如何订购Django ModelForm中的字段?

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

[Django如何知道命令渲染表单字段?](http://stackoverflow.com/questions/350799/how-does-django-know-the-order-to-render -form-fields) – DrTyrsa 2012-02-22 12:17:26

回答

58

您可以使用域= [...,“日期”,'之间时间',...]在您表单的Meta类中。请参阅:http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#changing-the-order-of-fields

+8

这是正确的答案,但我只想提及fields = [...]可以包含用户定义的字段。 – dspjm 2014-04-04 07:53:53

+0

确切地说,当你尝试重写调用'self.fields.keyOrder = [<模型和用户定义字段> ...]的'__init__'时,你会遇到问题(例外等)。 – 2014-04-25 09:37:04

-3

只需更改models.py中的类属性顺序即可。在1.9中工作

+3

这并不回答关于不属于模型的额外字段的问题。 – 2016-06-02 14:35:16

相关问题