gpt4 book ai didi

python - Django 管理操作添加批量多字段?

转载 作者:太空宇宙 更新时间:2023-11-03 17:22:07 26 4
gpt4 key购买 nike

我正在尝试通过操作将多个项目添加到 Django 上的 ManyToManyField 中。型号:

class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
website = models.URLField()


class Author(models.Model):
name = models.CharField(max_length=30)
twitter = models.CharField(max_length=20)


class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()

管理面板

def add_authors(modeladmin, request, queryset):
return HttpResponseRedirect('/add_authors')

@admin.register(Book)
class BookRegister(admin.ModelAdmin):
actions = [add_authors]

我想将所选项目重定向到 /add_authors 页面,我希望在该页面上有一个包含 Djagno admin ManyToManyField 选择器的模板。如何使用查询集上下文重定向到 /add_authors

我怎样才能让它发挥作用?

谢谢。

最佳答案

这样的事情会让你pk所有选定的书籍

import urllib

def add_authors(modeladmin, request, queryset):
params = {
'books': queryset.values_list('id', flat=True)
}
redirect_url = '/add_authors/?%s' % urllib.urlencode(params, doseq=True)
return HttpResponseRedirect(redirect_url)

您可以通过以下方式在 add_authors View 中检索图书 pk 列表:

# http://.../?books=1&books=2&...
books = request.GET.getlist('books')

查看 formfield_for_manytomany 了解如何在 modeladmin 中自动填充 M2M 字段:

文档:https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_manytomany

关于python - Django 管理操作添加批量多字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33047308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com