gpt4 book ai didi

python - Django 获取表单未排序列表

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:48 25 4
gpt4 key购买 nike

我在创建新对象时更改了我的管理表单以隐藏某些字段,但它按字母顺序排列字段,我想按它们在我的模型中的顺序排列它们。有什么建议吗?

_add_fields = ('name', 'size', 'slug',
'img', 'description', 'quantity')

def get_form(self, request, obj=None, **kwargs):
model_form = super(ItemAdmin, self).get_form(
request, obj, **kwargs
)

if obj is None:
model_form._meta.fields = self._add_fields
model_form.base_fields = {
field: model_form.base_fields[field]
for field in self._add_fields
}

return model_form

最佳答案

您需要使用 collections 模块中的 OrderedDict 来实现:

from django.contrib import admin
from collections import OrderedDict


class ItemAdmin(admin.ModelAdmin):

_add_fields = ('name', 'category',
'img', 'description', 'quantity')

def get_form(self, request, obj=None, **kwargs):
model_form = super(ItemAdmin, self).get_form(
request, obj, **kwargs
)

if obj is None:
model_form._meta.fields = self._add_fields
d = OrderedDict()
for field in self._add_fields:
d[field] = model_form.base_fields[field]
model_form.base_fields = d
return model_form

关于python - Django 获取表单未排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40057092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com