【发布时间】:2016-04-16 21:45:10
【问题描述】:
我需要在管理员创建/编辑页面中有“预览”按钮。 当用户单击此按钮时,应保存表单并重定向到特定的 url,用户可以在其中看到有关他刚刚添加或编辑的对象的信息。
所以我有自定义 ModelAdmin 类,我需要内联表单集:
class InboundAdmin(admin.ModelAdmin, ListView):
model = Inbound
form = InboundForm
change_form_template = 'admin/tour/inbound_form.html'
inlines = [InboundTourDatesInline, InboundProgramInline, InboundFeedbackInline, InboundMedia,
InboundTourSliderPhotoInline, InboundPriceDynamicsInline]
模板扩展admin/change_form.html。
此模板有自定义按钮:
<input type="submit" value="{% trans 'Preview' %}" class="default draft-submit" name="_save_as_draft" />
还有这个脚本:
$('.draft-submit').on('click', function(){
$.ajax({
type: "POST",
url: "{% url 'tours:inbound_draft' %}",
data: $("#{{ opts.model_name }}_form").serialize()
});
});
这是inbound_draft 视图:
def draft_inbounds(request):
print('inbounds')
form = InboundForm(request.POST or None, request.FILES or None)
if form.is_valid():
print('is_valid')
form.save()
# Here I should return specific url with pk as an attribute.
print('not_valid')
问题是,当我单击预览按钮时,它会保存更改,但会将我重定向回管理员中的 list_view。解决我的问题的正确方法是什么?
【问题讨论】:
标签: django django-admin preview