我可以为我的方法“HttpResponseRedirect (reverse ('name_view'))”添加一个 id 吗?
我有一个简单的表单,用户发送后可以看到消息('!一切都很好!:)。')。但它位于页面底部,用户被重定向到页面顶部。我可以重定向到页面底部(保存表单后)吗?如果可以的话,如何实现?
views.py
if request.method == 'POST':
contact_form = ContactForm(request.POST)
if contact_form.is_valid():
contact_form.save()
messages.success(request, '!All is good! :).')
return HttpResponseRedirect(reverse('app:home'))
else:
contact_form = ContactForm()
就我而言,我正在寻找类似的东西:
return HttpResponseRedirect(reverse('app:home#message_sending_section'))
home.html
<section class="module divider-top" id="message_sending_section">
[...]
{% if messages %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
{% for message in messages %}
{% if message.tags %}
<span class="alert-inner--icon"><i class="fas fa-check"></i></span>
<span class="alert-inner--text"></strong>{{ message.tags }}</strong></span>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
{% endif %}
{% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}Important: {% endif %}
{{ message }}
{% endfor %}
</div>
{% endif %}
[...]
</section>
锚点不是作为
reverse
参数的 URL 模式的一部分,而是附加到生成的 URL(即该调用的 结果)中。所以:
return HttpResponseRedirect("{}#message_sending_section".format(reverse('app:home')))