forms.modelform排序?

时间:2012-09-26 21:37:19

标签: django forms

class OperationCategoryOnlyForm(forms.ModelForm):
    class Meta:
      model = Operation
      fields = ('operation_type', 'category', 'related_account', )
      ordering = ['date']


OperationFormSet = modelformset_factory(Operation, form=OperationCategoryOnlyForm)

这是一个非常简单的问题 - 为什么它不起作用,以及如何使其排序不同于默认值(通过id)

1 个答案:

答案 0 :(得分:1)

ordering不是模型表单Meta类的有效选项,因此指定它不会执行任何操作。

如果您始终希望按特定字段对模型进行排序,则只需在模型的Meta类中设置ordering即可。这会影响其他地方的订购,例如在django admin。

class Operation(models.Model):
    # field definitions
    class Meta:
        ordering = ('date',)

如果您只想更改此formset的排序,请在初始化时更改provide a custom queryset

OperationFormSet = modelformset_factory(Operation, form=OperationCategoryOnlyForm, queryset=Operation.objects.order_by('date'))