Django管理操作以复制记录并对其进行编辑
我知道如何添加操作以复制记录,如下所述: 要编辑添加的记录,必须手动查找并编辑它。Django管理操作以复制记录并对其进行编辑,django,Django,我知道如何添加操作以复制记录,如下所述: 要编辑添加的记录,必须手动查找并编辑它。 我想知道如何将添加的记录作为此操作的一部分进行编辑,即该操作保存记录并调用此记录的更改视图(保存和编辑)如果有多个添加的记录,我不确定您想做什么。但是,对于单个案例,您可以重定向到管理页面。您需要查看文档中关于显示更多页面的部分: 您需要执行重定向来编辑新创建的对象。再加上复制代码,它看起来像: def duplicate_records(modeladmin, request, queryset):
我想知道如何将添加的记录作为此操作的一部分进行编辑,即该操作保存记录并调用此记录的更改视图(保存和编辑)如果有多个添加的记录,我不确定您想做什么。但是,对于单个案例,您可以重定向到管理页面。您需要查看文档中关于显示更多页面的部分: 您需要执行重定向来编辑新创建的对象。再加上复制代码,它看起来像:
def duplicate_records(modeladmin, request, queryset):
object_ids = []
for object in queryset:
object.id = None
object.save()
object_ids.append(object.id)
if len(object_ids) == 1:
return HttpResponseRedirect(reverse('admin:yourapp_yourmodel_change',
args=(object_ids[0],))
else:
return HttpResponseRedirect(reverse('admin:yourapp_yourmodel_changelist')
+ "?id_in={0}".format(",".join(str(i) for i in object_ids))
此代码未经测试,您需要一些导入,但它应该可以工作。对于多对象的情况,应该重定向到仅显示已创建对象的变更列表页面。如果有多个添加的记录,我不确定要执行什么操作。但是,对于单个案例,您可以重定向到管理页面。您需要查看文档中关于显示更多页面的部分: 您需要执行重定向来编辑新创建的对象。再加上复制代码,它看起来像:
def duplicate_records(modeladmin, request, queryset):
object_ids = []
for object in queryset:
object.id = None
object.save()
object_ids.append(object.id)
if len(object_ids) == 1:
return HttpResponseRedirect(reverse('admin:yourapp_yourmodel_change',
args=(object_ids[0],))
else:
return HttpResponseRedirect(reverse('admin:yourapp_yourmodel_changelist')
+ "?id_in={0}".format(",".join(str(i) for i in object_ids))
此代码未经测试,您需要一些导入,但它应该可以工作。对于多对象情况,应该重定向到仅显示已创建对象的变更列表页面。谢谢。它起作用了。我只需要一个物体的情况下,但我会尝试多个情况下也。谢谢。它起作用了。我只需要单个对象的情况,但我也会尝试多个情况。您好user2012749-您能将我的答案标记为正确,以便将此问题标记为已回答吗?Stackoverflow依赖于这种机制,如果没有得到正确的答案并且没有正式承认它,这被认为是不礼貌的。您好,用户2012749-您能将我的答案标记为正确,这样这个问题就标记为已回答吗?Stackoverflow依赖于这种机制,如果没有得到正确的答案,并且没有正式承认,这被认为是不礼貌的。