【问题标题】:Django: Initialize model add view with data through admin actionDjango:通过管理操作使用数据初始化模型添加视图
【发布时间】:2014-08-22 04:52:21
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    请参阅这部分文档:
    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)
    

    【讨论】:

    • 嘿,这看起来可能行得通。我在另一个 stackoverflow 问题中看到了这一点,但他们并没有得到它的实质。非常感谢您的信息。顺利的话我会接受的!
    猜你喜欢
    • 1970-01-01
    • 2013-11-26
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2012-10-10
    • 2023-04-02
    相关资源
    最近更新 更多