No se encontró el reverso para ‘update_comment’ con argumentos ‘(‘ ‘,)’. 1 patrón (s) intentado: +) $’]

Estoy codificando un sitio de noticias. Ahora estoy detallando con la función de publicación de comentarios. Y resolver el problema dice:

Reverse for 'update_comment' with arguments '('',)' not found. 1 pattern(s) tried: ['comment\\/(?P[0-9]+)$'] 

He intentado de muchas maneras y muchas veces, pero aún no puedo resolverlo y no encuentro ningún error en mi código. Y realmente necesito tu ayuda.

La función de publicación de comentarios se encuentra en news_detail.html. Hay dos aplicaciones importantes en las noticias de mi proyecto y los modelos de comentarios operativos están en funcionamiento.

Aquí está mi urls.py raíz :

 path('news', include(('news.urls', 'news'), namespace="news")), path('', include(('operation.urls', 'operation'), namespace="operation")), 

Aquí están las noticias / urls.py

 path('-', newsDetailView, name="news_detail") 

Aquí está la operación / urls.py:

 path('comment/', views.update_comment, name="update_comment"), 

Aquí están las noticias / view.py

 def newsDetailView(request, news_pk): news = News.objects.get(id=news_pk) title = news.title author = news.author_name add_time = news.add_time content = news.content category = news.category tags = news.tag.annotate(news_count=Count('news')) all_comments = NewsComments.objects.filter(news=news) return render(request, "news_detail.html", { 'title': title, 'author': author, 'add_time': add_time, 'content': content, 'tags': tags, 'category': category, 'all_comments': all_comments, }) 

Aquí está la operación / views.py

 def update_comment(request, news_pk): news = News.objects.get(id=news_pk) comment_form = CommentForm(request.POST or None) if request.method == 'POST' and comment_form.is_valid(): if not request.user.is_authenticated: return render(request, 'login.html', {}) comments = comment_form.cleaned_data.get("comment") news_comment = NewsComments(user=request.user, comments=comments, news=news) news_comment.save() return render(request, "news_detail.html", { 'news_comment': news_comment, 'news':news }) 

Y aquí está el news_detail.html:

 {% if user.is_authenticated %} {% csrf_token %}   

No estás pasando el objeto de news al contexto para news_detail.html . Puede simplificar mucho la vista simplemente pasando news y haciendo cosas como {{ news.title }} en la plantilla (en lugar de {{ title }} ):

 def newsDetailView(request, news_pk): news = get_object_or_404(News, id=news_pk) tags = news.tag.annotate(news_count=Count('news')) all_comments = NewsComments.objects.filter(news=news) return render(request, "news_detail.html", { 'news': news, 'tags': tags, 'all_comments': all_comments, }) 

Ahora news.pk funcionará como un argumento para su etiqueta {% url ... %} . También me aseguré de que se genere un error 404 si no se puede encontrar el objeto de news (en su código, se bloquearía).

 {% url 'some-url-name' arg1=v1 arg2=v2 %} 

ref: https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#url

Arreglado: Su código es correcto. El error insinúa que:

  arguments '('',)' not found. arguments '('',)'