문제

Django의 내장 주소 모듈을 사용하여 템플릿에서 내장 주석 양식을 단순히 렌더링하고 싶지만 TemplatesyNtaxError 예외를 반환합니다.

인터넷 검색과 Django API 참조를 사용한 후에도 여전히 더 멀지 않기 때문에이 오류를 디버깅하는 데 도움이 필요합니다.

정보 :

이것은 템플릿 '_post.html'[shortened]입니다.

<div id="post_{{ object.id }}">
<h2>
    <a href="{% url post object.id %}">{{ object.title }}</a>
    <small>{{ object.pub_date|timesince }} ago</small>
    </h2>
    {{ object.body }}
    {% load comments %}
    {% get_comment_count for object as comment_count %}
    <p>{{ comment_count }}</p>
    <!-- Returns 0, because no comments available  -->
    {% render_comment_form for object %}
    <!-- Returns TemplateSyntaxError -->

이것은 렌더링 할 때 예외 출력입니다.

Caught an exception while rendering: Reverse for 'django.contrib.comments.views.comments.post_comment'
with arguments '()' and keyword arguments '{}' not found.1  
{% load comments i18n %}
        <form action="{% comment_form_target %}" method="post">
          {% 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 %}
          <p
            {% if field.errors %} class="error"{% endif %}
            {% ifequal field.name "honeypot" %} style="display:none;"{% endifequal %}>
            {{ field.label_tag }} {{ field }}

/posts/urls.py] : Shortened] :

queryset = {'queryset': Post.objects.all(),
            'extra_context' : {"tags" : get_tags}
           }   
urlpatterns = patterns('django.views.generic.list_detail',
    url('^$',                           'object_list',      queryset,
        name='posts'),
    url('^blog/(?P<object_id>\d+)/$',   'object_detail',    queryset,
        name='post'),
)

/urls.py] : shortened] :

urlpatterns = patterns('',
    (r'', include('posts.urls')),
    (r'^comments/$', include('django.contrib.comments.urls')),
)
도움이 되었습니까?

해결책

render_comment_form 템플릿 태그가 트리거되었습니다.

문제는 확실히 URL 구성과 관련이 있습니다. 내가 한 것과 같은 방식으로 설정했습니다.

(r'^comments/$', include('django.contrib.comments.urls'))

올바른 방법은 '댓글/'후 '$'를 제거하는 것입니다.

(r'^comments/', include('django.contrib.comments.urls'))

그렇지 않으면 Django는 경로 주석 아래에 필요한 모든 URL을 제대로 포함시킬 수 없습니다.

도움이 되었기를 바랍니다.

다른 팁

오류 메시지는 다음의 역 URL을 찾을 수 없음을 나타냅니다.


   django.contrib.comments.views.comments.post_comment

따라서 기본적으로 URL에서 무언가가 구성되지 않았습니다. 물건을 설정하는 방법을 더 많이 볼 수 없다면 정확히 무엇을 아는 것은 어렵습니다.

urls.py에 포함 된 URL 패턴을 다시 주문하여 Django 주석 URL을 맨 위로 강요할까요?

오늘도 같은 문제가있었습니다. 나는 아직 만들지 않은 urls.py에서보기를 언급하고있었습니다.

에서 http://docs.djangoproject.com/en/dev/topics/http/urls/#reverse

어떤 URL 이름이 어떤 패턴을 맵핑하는지 확인하는 것의 일부로, Reverse () 함수는 모든 URLConf 파일을 가져 와서 각보기의 이름을 검사해야합니다. 여기에는 각보기 기능을 가져 오는 것이 포함됩니다. 뷰 함수를 가져 오는 동안 오류가 있으면 뷰 함수가 반전하려는 것이 아니더라도 Reverse ()가 오류를 일으킬 수 있습니다.

URLCONF 파일에서 참조하는 모든 뷰가 존재하고 올바르게 가져올 수 있는지 확인하십시오. 아직 작성하지 않은 참조 조회수를 포함하지 마십시오. 이러한 뷰는 가져올 수 없기 때문입니다.

이 오류는보기를 찾았다 고 말합니다 django.contrib.comments.views.comments.post_comment

그러나 args () 또는 kwargs {}는 통과되지 않았습니다.

Object.id의 값을 URL로 전달하지 않습니다.

URL 태그를 꺼내고 ID가 <div id="post_{{object.id}}"> 적절한 개체를 반영합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top