Вопрос

есть проблема, я новичок в 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 }}">&laquo;</a></li>
                {% else %}
                    <li class="arrow unavailable"><a href="">&laquo;</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 }}/">&raquo;</a></li>
                {% else %}
                    <li class="arrow unavailable"><a href="">&raquo;</a></li>
                {% endif %}
            </ul>
        </div>
    </div>

{% endblock %}

это мой article/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, но новые комментарии не появляются, только старые.

Что я должен сделать, чтобы сделать это правильно?Большое спасибо!

Это было полезно?

Решение

Имя вашей переменной comments_page_number всегда использует значение по умолчанию.Назовите свой второй параметр в url-маршруте так, чтобы он соответствовал этому имени переменной.

Другие советы

Вам нужно:

url(r'^articles/get/(?P<article_id>\d+)/comments/(?P<comments_page_number>\d+)/$', 'article.views.this_article'),
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top