2011-03-02 83 views
4

我正在嘗試將用戶重定向回發佈評論的頁面。我發現這個post on Django's site,但我做錯了什麼,因爲它不會重定向回來。Django:發佈評論後重定向

應該在哪裏放置輸入以使其正確重定向?

{% load comments i18n %} 
<form action="{% comment_form_target %}" method="post">{% csrf_token %} 
    {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %} 
    {% for field in form %} 
    {% if field.is_hidden %} 
     {{ field }} 
    {% else %} 
     {% if field.errors %}{{ field.errors }}{% endif %} 
      <input type="hidden" name="next" value="{% url proposal proposal.id %}" /> 
     <p 
     {% if field.errors %} class="error"{% endif %} 
     {% ifequal field.name "honeypot" %} style="display:none;"{% endifequal %} 
     {% ifequal field.name "name" %} style="display:none;"{% endifequal %} 
     {% ifequal field.name "email" %} style="display:none;"{% endifequal %} 
     {% ifequal field.name "url" %} style="display:none;"{% endifequal %} 
     {% ifequal field.name "title" %} style="display:none;"{% endifequal %}> 
     <!-- {{ field.label_tag }} -->{{ field }} 
     </p> 
    {% endif %} 
    {% endfor %} 
    <p class="submit"> 
    <!-- <button><input type="submit" name="post" value="{% trans "Send" %}" /></button> --> 
     <button type="submit">Send</button> 
    <!-- <input type="submit" name="preview" class="submit-preview" value="{% trans "Preview" %}" /> --> 
    </p> 
</form> 
+0

看起來對我而言 - 你提供下一個值嗎?嘗試下一個硬編碼測試。 – 2011-03-02 15:39:37

+0

我不是。我錯過了這一行,並認爲會重定向它。 – Emile 2011-03-02 17:31:10

+0

哦,我什至沒有看到第二個。我肯定會以硬編碼**的形式開始縮小這個問題。 – 2011-03-02 20:18:54

回答

1

也許你並不需要檢查你的模板下一個變量。你可以嘗試改變:

{% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %} 

只是:

<input type="hidden" name="next" value="/added/comment/page/" /> 

如果您在使用views.py,重定向從那裏似乎更明顯,至少對我來說,因爲它有助於從保持關注遠模板:

from django.http import HttpResponseRedirect 
HttpResponseRedirect("/path/to/redirect") 
+0

Arbie,感謝您的評論。我想你已經開始了。我有一個問題是我如何/在哪裏定義'下一個'?以下是我對圖片對象的評論部分示例:gist.github.com/4ea34b6f559a15c91d05再次感謝您的幫助! – Emile 2011-03-07 02:51:48

+0

對於我而言,我只是使用了一個函數來渲染評論表單所在的頁面。 \t Emile 2011-03-07 21:21:54

0

如果您正在使用{% render_comment_form for object %}標籤在你的模板,只需添加類似{% url object's_named_view object.id as next %}或​​把它包... {% endwith %}建設。

1

axel22's answer的問題在於它需要對每個需要註釋表單的模板進行更改 - 如果您有多個可以註釋的對象類型,則這不是DRY。

不幸的是,我還在尋找一個有效的答案。