我想使用Django(1.4)modelformset,在该模型中,加载表单集时,表单将由模型中的exam_date字段进行排列。为此,我创建了以下简单的BaseModelFormSet
BaseExamDateFormSet(BaseModelFormSet)类:
def __init __(self,* args,** kwargs):
超级(BaseExamDateFormSet,self).__ init __(* args,** kwargs)
self.queryset = models.ExamDate.objects.all()。order_by('exam_date')
如您所见,我已经按照
django docs(稍后我还将更改其清理方法,但现在没有关系)。之后,我在视图中使用它来创建表单集:
ExamDateFormSet = modelformset_factory(
models.ExamDate,
排除=('authority',),
can_delete =是,
extra = 1,
formset = forms.BaseExamDateFormSet
)
...
表格集= ExamDateFormSet()
我的问题是,在呈现表单集时,无论order_by属性的值如何,表单中的数据始终按相同的顺序排列(按ID进行排序):(
我应该在ExamDate模型中尝试设置默认订单吗?我真的不喜欢这种解决方案:(
TIA!
最佳答案
经过更多搜索后,我找到了解决方案!
我忽略了queryset属性,并将以下方法添加到BaseExamDateFormSet中:
def get_queryset(self):
返回models.ExamDate.objects.all()。order_by('exam_date')
但是我还不知道为什么queryset属性不起作用。
关于python - Django modelformset order_by不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15244190/