在Django的ManyToMany关系管理编辑中进行搜索,可以通过以下步骤实现:
Book
和Author
,它们之间是多对多关系。from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField('Author')
class Author(models.Model):
name = models.CharField(max_length=100)
ModelMultipleChoiceField
字段来选择多个作者。from django import forms
from .models import Book, Author
class BookForm(forms.ModelForm):
authors = forms.ModelMultipleChoiceField(
queryset=Author.objects.all(),
widget=forms.CheckboxSelectMultiple
)
class Meta:
model = Book
fields = '__all__'
search_fields
属性来指定搜索字段。在这个例子中,我们将使用authors__name
来搜索作者的名称。from django.contrib import admin
from .models import Book
from .forms import BookForm
class BookAdmin(admin.ModelAdmin):
form = BookForm
search_fields = ['title', 'authors__name']
admin.site.register(Book, BookAdmin)
现在,在Django的管理界面中,你可以在ManyToMany关系的编辑页面上使用搜索框来搜索作者的名称。输入作者的名称后,系统将根据搜索条件过滤出符合条件的作者,并显示在多选框中供选择。
这样,你就可以在Django的ManyToMany关系管理编辑中进行搜索了。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云