首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向后模板中的信息,Django - Python

重定向后模板中的信息,Django - Python
EN

Stack Overflow用户
提问于 2019-02-12 11:12:11
回答 1查看 46关注 0票数 0

我有一个简单的视图,允许我在Django模板中添加注释。

代码语言:javascript
复制
if request.method == 'POST':
    review_form = ReviewForm(data=request.POST)
    if review_form.is_valid():
        rating = review_form.cleaned_data['rating']
        comment = review_form.cleaned_data['comment']
        user_name = review_form.cleaned_data['user_name']
        order_code = review_form.cleaned_data['order_code']
        review = Review()
        review.masseurs = masseur
        review.rating = rating
        review.comment = comment
        review.user_name = user_name
        review.order_code = order_code
        review.pub_date = datetime.datetime.now()
        review.save()

        return HttpResponseRedirect(reverse('app:masseur_detail', args=(masseur.id,)))

else:
    review_form = ReviewForm()

添加注释后,用户将被重定向到基本页面。我想在这里显示一个谢谢和信息,评论已经添加了。如何在我的视图中创建一个元素来检查是否刚刚添加了一个新的注释(在重定向之后)。我试着使用'new_comment = review_form.save (commit = False)‘之类的东西,但是它不能正常工作(或者我做错了什么)。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-12 11:36:11

你可以做这样的事

in views.py

代码语言:javascript
复制
 from django.contrib import messages
if request.method == 'POST':
    review_form = ReviewForm(data=request.POST)
    if review_form.is_valid():
        rating = review_form.cleaned_data['rating']
        comment = review_form.cleaned_data['comment']
        user_name = review_form.cleaned_data['user_name']
        order_code = review_form.cleaned_data['order_code']
        review = Review()
        review.masseurs = masseur
        review.rating = rating
        review.comment = comment
        review.user_name = user_name
        review.order_code = order_code
        review.pub_date = datetime.datetime.now()
        review.save()
        messages.success(request, 'Added successfully!')
        return HttpResponseRedirect(reverse('app:masseur_detail', args=(masseur.id,)))

else:
    review_form = ReviewForm()

模板中的添加这一行

代码语言:javascript
复制
{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>
        {% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}Important: {% endif %}
        {{ message }}
    </li>
    {% endfor %}
</ul>
{% endif %}

希望能帮上忙

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54648802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档