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


OperationFormSet = modelformset_factory(Operation, form=OperationCategoryOnlyForm)

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

4

1 回答 1

1

ordering不是模型表单Meta类的有效选项,因此指定它不会做任何事情。

如果您总是想按特定字段对模型进行排序,您可以简单地ordering在模型的Meta类中进行设置。这将影响其他地方的排序,例如在 django 管理员中。

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

如果您只想更改此表单集的顺序,请在初始化时提供自定义查询集。

OperationFormSet = modelformset_factory(Operation, form=OperationCategoryOnlyForm, queryset=Operation.objects.order_by('date'))
于 2012-09-26T21:50:58.800 回答