与Django Admin中的外键字段相关,默认显示 element是一个包含所有外键的下拉列表框 相关模型中的项目。我的应用程序将包含数千个项目,我希望更改管理界面,并使用文本框而不是填充的下拉列表。
查找旁边有添加/编辑图标的文本框,这样我们就不会获得填充值,我们只是直接添加或编辑。
有没有办法实现它。
答案 0 :(得分:0)
您可以尝试使用自定义表单并在此表单字段上实现自定义窗口小部件。 (我用于这个desicion第三方库django_select2)
from django import forms
from django_select2.forms import ModelSelect2Widget
class KeyWidget(ModelSelect2Widget):
model = ModelToKey
search_fields = ['field__icontains']
def label_from_instance(self, obj):
return u'{}'.format(obj.field)
class CustomForm(forms.ModelForm):
class Meta:
model = ModelWithKey
fields = ('foreign_key_field')
widgets = {
'foreign_key_field': KeyWidget(attrs={'style': 'width:550px'}),
}
此外,您还可以重载表单__init__
以自定义对象的查询集,以便在此字段中进行选择。