在Django中,如果你想在选择字段中显示相关的多对多字段,可以使用ModelAdmin
类中的list_display
属性来实现。
首先,确保你已经在模型中定义了多对多关系。假设你有两个模型,Book
和Author
,并且之间存在多对多的关系。
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
接下来,在admin.py
中创建一个ModelAdmin
类,并定义list_display
属性来显示相关的多对多字段。
from django.contrib import admin
from .models import Book
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'display_authors')
def display_authors(self, obj):
return ", ".join([author.name for author in obj.authors.all()])
admin.site.register(Book, BookAdmin)
在上面的代码中,我们在list_display
中添加了一个新的字段display_authors
,该字段会显示相关的多对多字段。display_authors
方法接收一个obj
参数,表示当前的Book
对象,我们可以通过obj.authors.all()
来获取与该Book
对象相关联的所有Author
对象,并使用join
方法将它们的名字以逗号分隔的形式返回。
现在,当你在后台管理界面查看Book
对象列表时,你将会看到title
和display_authors
两个字段。
请注意,上面的代码只是一个示例,并不包含腾讯云相关产品的介绍。如果你想了解腾讯云相关产品和产品介绍,可以访问腾讯云官方网站或者咨询腾讯云的客服人员。
领取专属 10元无门槛券
手把手带您无忧上云