呈现ManyToMany选择框时,Django的ModelAdmin是否可以显示不同的字段?

时间:2020-08-14 17:27:19

标签: django django-models django-admin

我有一个带有public function update(UpdateRequest $request){ $subotal_articulos = $this->subotalArticulos($request->articulos); $referencia_duplicada = $this->referenciaDuplicada($request->orden_compra['referencia'],$request->orden_compra['po_id']); $remision_duplicada = $this->remisionDuplicada($request->orden_compra['remision'],$request->orden_compra['po_id']); if( $referencia_duplicada > 0 ){ return response()->json(['errors' => ['El número de Referencia ya existe. Por favor, ingrese una nueva Referencia.'], 'data' => null ], 422); } 的Django模型。

在呈现管理页面以添加模型实例时,ManyToManyField呈现一个带有ModelAdmin之类的选项的选择框(模型使用uuid作为其主键)。

如何让Django管理员使用其他更友好的字段来呈现选择框?

2 个答案:

答案 0 :(得分:1)

尽管有最后一个答案,但如果您的Django版本大于2.0,一种优化而简洁的方法是为CNAME定义一个管理页面。就像以下代码一样:

SomeModel

然后在您的源模型中,管理代码(该模型与@admin.register(SomeModel) class SomeModelAdmin(admin.ModelAdmin): list_display = ('name', 'created_time', ) # change this part to your fields search_fields = ('name', ) # If you have this field in your model 具有M2M关系)添加一个属性为SomeModel(已从版本2添加到Django)并将其引用为{ {1}}。类似于以下代码:

auto_complete_fields

答案 1 :(得分:0)

我在输入问题时就想到了解决方案。 Django管理员仅在选择框中显示模型的字符串表示形式。向模型添加SomeModel object(7c158809-4c9b-4d44-b3ac-9f225b8bd076定义,但是您希望在选择框中呈现对象,将解决此问题,例如:

__str__