我是Django 2.0中自动完成的新手。
我可以使用它,但是在使用“自动完成”功能时,我似乎无法让django管理员更改label_from_instance。
有人知道如何修改autocomplete_fields标签吗?
通常没有自动完成功能,我的djangoadmin获取表单如下所示
/* Scrollbar*/
::-webkit-scrollbar {width: 0px;height: 0px;}
::-webkit-scrollbar-track {background: #f1f1f1;}
::-webkit-scrollbar-thumb {background: #888;}
::-webkit-scrollbar-thumb:hover {background: #555;}
/* Only Firefox 64 & + */
*{scrollbar-width: none!important;}
::selection { background: transparent; }
::-moz-selection { background: transparent; }
如果我使用
def get_form(self, request, obj=None, **kwargs):
form = super(ChampProductMappingAdmin, self).get_form(request, obj, **kwargs)
form.base_fields['sharepoint_product'].label_from_instance = lambda obj: "{} {}".format(obj.product_name, obj.final_publications_product_id)
它仅使用标准对象(ID)标签
答案 0 :(得分:0)
我试图实现同样的目标,但是在调查中,我看不到一种轻松实现此目标的方法。
由于是自动完成的,因此结果是通过AJAX加载的,而不是通过页面呈现的。
当您查看Django源代码的AJAX视图(https://github.com/django/django/blob/43f54e136e9282f5c0bfcf1169d0d59b3c365add/django/contrib/admin/views/autocomplete.py#L31)时,您会发现标签设置为str(obj)
,没有简单的方法来更改该行为。