2012-09-26 17 views
0
class OperationCategoryOnlyForm(forms.ModelForm): 
    class Meta: 
     model = Operation 
     fields = ('operation_type', 'category', 'related_account',) 
     ordering = ['date'] 


OperationFormSet = modelformset_factory(Operation, form=OperationCategoryOnlyForm) 

這是很簡單的問題 - 爲什麼它不工作,以及怎樣做才能得到它排序比默認值不同(通過ID)forms.modelform排序?

回答

1

ordering不是一個模型形式的Meta類的有效選項,所以指定它不會做任何事情。

如果您始終想按特定字段排序模型,則可以在模型的Meta類中簡單設置ordering。這會影響其他地方的排序,例如在Django的管理員。

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

如果您只想在初始化時更改此窗體集的排序。

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

非常感謝您...完整的答案,超出我的預期。 –