Django 管理操作:将 "Students" 添加到 "Academic Class"
Django Admin Actions: Add "Students" to "Academic Class"
Django 1.7,Python3.0,Postgresql
感谢您花时间阅读本文,我想我在这里漏掉了一些明显的东西。
为简单起见,假设我的模型是:
- 学生
- 学术班
我想使用 Admin Actions 来:
第一名: Select 同学们
第 2 次: 创建新的尚未填写详细信息的 AcademicClass 以及之前附加的 Students
添加 actions = [make_new_academic_class]
并链接到该页面非常简单,但我完全不知道如何将查询集附加到那个新的 AcademicClass。
students = ManyToManyField('mgmt.Student', related_name='classes')
我相信我的一切都是正确的,除了这部分:
def make_new_academic_class(modeladmin, request, queryset):
for stdnt in queryset:
print(stdnt.id) #obviously want to save this somehow
#then want to insert it in the AcademicClass-Student relationship
return redirect("/school/class/add")
更新
被告知最好的方法是 "pre-populate the form" 使用 Django API。正在努力。
好的,所以我明白了:
def make_class(modeladmin, request, queryset):
new_class = Class()
new_class.save()
for student in queryset:
new_class.students.add(student.id)
return redirect(reverse('admin:mgmt_class_change', args=(new_class.id,)))
我对此采取了几种方法,这是有效的方法。希望以后对某人(或我自己)有所帮助。
Django 1.7,Python3.0,Postgresql
感谢您花时间阅读本文,我想我在这里漏掉了一些明显的东西。
为简单起见,假设我的模型是:
- 学生
- 学术班
我想使用 Admin Actions 来:
第一名: Select 同学们
第 2 次: 创建新的尚未填写详细信息的 AcademicClass 以及之前附加的 Students
添加 actions = [make_new_academic_class]
并链接到该页面非常简单,但我完全不知道如何将查询集附加到那个新的 AcademicClass。
students = ManyToManyField('mgmt.Student', related_name='classes')
我相信我的一切都是正确的,除了这部分:
def make_new_academic_class(modeladmin, request, queryset):
for stdnt in queryset:
print(stdnt.id) #obviously want to save this somehow
#then want to insert it in the AcademicClass-Student relationship
return redirect("/school/class/add")
更新
被告知最好的方法是 "pre-populate the form" 使用 Django API。正在努力。
好的,所以我明白了:
def make_class(modeladmin, request, queryset):
new_class = Class()
new_class.save()
for student in queryset:
new_class.students.add(student.id)
return redirect(reverse('admin:mgmt_class_change', args=(new_class.id,)))
我对此采取了几种方法,这是有效的方法。希望以后对某人(或我自己)有所帮助。