Джанго комментарии не работает
Есть проблема, я новичок в django, и есть проблема, которую я не могу понять,
есть вид:
def article(request, article_id = 1, comments_page_number = 1):
all_comments = Comments.objects.filter(comments_article_id = article_id)
paginator = Paginator(all_comments, 2)
comment_form = CommentForm
args = {}
args.update(csrf(request))
args['article'] = Article.objects.get(id = article_id)
args['comments'] = paginator.page(comments_page_number)
args['form'] = comment_form
args['username'] = auth.get_user(request).username
return render_to_response('article.html', args)
есть шаблон article.html
{% extends 'main.html' %}
{% block article %}
<h4>{{article.article_date}}</h4>
<h2>{{article.article_title}}</h2>
<p> {{article.article_body}}</p>
<hr>
<div class="large-offset-1 large-8 columns">
<p>Комментарии: </p>
{% for comment in comments %}
<p>{{comment.comments_text}}</p>
<hr>
{% endfor %}
{% if username %}
<form action="/articles/addcomment/{{article.id}}/" method="POST" >
{% csrf_token %}
{{form }}
<input type="submit" class="button" value="Add comment">
</form>
{% endif %}
</div>
<div class="row">
<div class="large-3 large-offset-5 columns">
<ul class="pagination">
{% if comments.has_previous %}
<li class="arrow"><a href="/articles/get/{{article.id}}/comments/{{ comments.previous_page_number }}">«</a></li>
{% else %}
<li class="arrow unavailable"><a href="">«</a></li>
{% endif %}
{% for page in comments.paginator.page_range %}
{% if page == comments.number %}
<li class="current"><a href="/articles/get/{{article.id}}/comments/{{ page }}/">{{ page }}</a></li>
{% else %}
<li><a href="/articles/get/{{article.id}}/comments/{{ page }}/">{{ page }}</a></li>
{% endif %}
{% endfor %}
{% if comments.has_next %}
<li class="arrow"><a href="/articles/get/{{article.id}}/comments/{{ comments.next_page_number }}/">»</a></li>
{% else %}
<li class="arrow unavailable"><a href="">»</a></li>
{% endif %}
</ul>
</div>
</div>
{% endblock %}
это моя статья /urls.py
urlpatterns = patterns('',
url(r'^articles/get/(?P<article_id>\d+)/$','article.views.article'),
url(r'^articles/get/(?P<article_id>\d+)/comments/(\d+)/$', 'article.views.article'),
)
после этого на странице моей статьи появилось разбиение на страницы, но когда я, например, нажимаю на вторую страницу, она просто меняет мой URL, но новые комментарии не появляются, только старые.
Что я должен сделать, чтобы сделать это правильно? Большое спасибо!
2 ответа
Решение
Ваше имя переменной comments_page_number
всегда использует значение по умолчанию. Назовите свой второй параметр в URL-маршруте, чтобы соответствовать этому имени переменной.
Тебе нужно:
url(r'^articles/get/(?P<article_id>\d+)/comments/(?P<comments_page_number>\d+)/$', 'article.views.this_article'),