Django:通过管理操作初始化模型添加视图和数据

时间:2014-07-01 14:59:48

标签: python django django-models django-forms django-admin

我正在Django运行一个摄影应用程序。我有一个Photograph模型和PhotoSet模型,与ManyToManyField的关系Photograph。我想创建一个管理操作,我可以在管理列表视图中选择多个Photograph对象,选择"从所选照片创建照片集"操作,并使用预先填充了我在上一页中选择的照片的admin:photography_photoset_add字段进入photos视图。然后,我可以根据需要输入标题,slug和描述。这种流程可能吗?经过相当多的搜索之后,我还没能找到它,而我目前所知道的唯一途径就是使用自定义添加视图并在会话状态下存储我的选择来处理所有这些。看起来很乱。

1 个答案:

答案 0 :(得分:0)

参见文档的这一部分:
https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#actions-that-provide-intermediate-pages

这个答案:
https://stackoverflow.com/a/4924985/202168

from django.core.urlresolvers import reverse

def create_photoset_from_photos(modeladmin, request, queryset):
    ids = ','.join([str(photo_id) for photo_id in queryset.values_list('id', flat=True)])
    add_photoset_url = '{url}?photos={ids}'.format(url=reverse('admin:photography_photoset_add'), ids=ids)
    return HttpResponseRedirect(add_photoset_url)