Django admin-更改ForeignKey显示文本
选择字段作为ForeignKey时,如何更改select中的显示文本?我不仅需要显示FK的名称,还需要显示其父级的名称。
有人可以提供线索吗?
回答:
好吧,如果你希望它仅在admin中生效而不在全局中生效,则可以创建一个自定义ModelChoiceField
子类,在自定义中使用该子类,ModelForm
然后将相关的admin类设置为使用自定义表单。以Person@Enrique
使用的模型具有FK的示例为例:
class Invoice(models.Model): person = models.ForeignKey(Person)
....
class InvoiceAdmin(admin.ModelAdmin):
form = MyInvoiceAdminForm
class MyInvoiceAdminForm(forms.ModelForm):
person = CustomModelChoiceField(queryset=Person.objects.all())
class Meta:
model = Invoice
class CustomModelChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return "%s %s" % (obj.first_name, obj.last_name)
以上是 Django admin-更改ForeignKey显示文本 的全部内容, 来源链接: utcz.com/qa/428835.html