Django评论 - 重定向

时间:2012-02-23 15:03:44

标签: python django

我怎样才能摆脱被用户指向“谢谢你 对于你的评论“在Django网站评论后的页面?我希望用户成为 重定向到他们评论的同一页面。我正在使用Django 评价。

我尝试添加:

         <input type=”hidden” name=”next” value=”"{% url
          django.contrib.comments.views.comments.comment_done %}" />

但它不起作用。以下是我的评论/ form.html

中的代码
         {% load comments %}
        {% get_comment_count for sol as comment_count %}
        {% get_comment_list for sol as comment_list %}
         {% get_comment_form for sol as form %}
         {% if user.is_authenticated %}
        <form action="{% comment_form_target %}" method="post">
    {% csrf_token %}
    {% if next %}<input type="hidden" name="next" value="{% url
        django.contrib.comments.views.comments.comment_done %}" />{% endif %}
    {% for field in form %}
        {% if field.is_hidden %}
            {{ field }}
        {% else %}
            {% if field.name != "name" and field.name != "email"
                 and field.name != "url" %}
                {% if field.errors %}{{ field.errors }}{% endif %}
                {{ field }}
            {% endif %}
        {% endif %}
    {% endfor %}
    <input class="submit-post" name="post" type="submit" value="Comment" />

   </form>
     {% else %}
      I'm sorry, but you must be <a href="javascript:alert('send to
     login page')">logged in</a> to submit comments.
      {% endif %} 

1 个答案:

答案 0 :(得分:3)

首先让我们回顾一下你的代码:

<input type=”hidden” name=”next” value=”"{% url
      django.contrib.comments.views.comments.comment_done %}" />
  1. 两个双引号:值= “” {%url

  2. 网址为comment_done :所以这会重定向到“感谢您的评论页面”,您要避免

  3. 使用网址名称代替模块名称{% url comments-comment-done %}而不是{% url django.contrib.comments.views.comments.comment_done %}

  4. 相反,您可以将评论海报重定向到他评论的对象的绝对网址:

    <input type="hidden" name="next" value="{{ form.instance.content_object.get_absolute_url }}" />
    

    这假设您的模型定义了标准的get_absolute_url()方法。

    甚至,您可以将用户重定向到他所在的同一页面:

    <input type="hidden" name="next" value="{{ request.path }}" />
    

    他访问的上一页:

    <input type="hidden" name="next" value="{{ request.META.HTTP_REFERER }}" />