首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在django管理中对只读M2M字段进行排序

在Django管理中对只读M2M字段进行排序的方法如下:

  1. 首先,确保你的Django项目中已经安装了Django的admin模块。
  2. 在你的models.py文件中,定义一个只读的ManyToMany字段,并设置related_name属性,以便在管理界面中引用它。
代码语言:txt
复制
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)

class Author(models.Model):
    name = models.CharField(max_length=100)
    books = models.ManyToManyField(Book, related_name='authors')
  1. 在admin.py文件中,注册你的模型,并创建一个自定义的ModelAdmin类。
代码语言:txt
复制
from django.contrib import admin
from .models import Author

class AuthorAdmin(admin.ModelAdmin):
    readonly_fields = ('books',)

    def books(self, obj):
        return ", ".join([book.title for book in obj.books.all()])

    books.short_description = 'Books'

admin.site.register(Author, AuthorAdmin)

在上面的代码中,我们定义了一个自定义的ModelAdmin类AuthorAdmin,并将books字段设置为只读字段。然后,我们定义了一个books方法,该方法返回一个逗号分隔的作者的所有书籍标题。最后,我们将books方法设置为只读字段的short_description。

  1. 现在,在Django管理界面中,你将能够看到作者模型的books字段,并且该字段是只读的。你可以根据需要对该字段进行排序。

这是一个基本的方法来在Django管理中对只读M2M字段进行排序。根据你的具体需求,你可以进一步定制和优化这个方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券