cuprumvsargetium
@cuprumvsargetium
228

Почему Django выдает ошибку для ревёрса?

Reverse for 'list' with keyword arguments '{'pk': 2}' not found. 1 pattern(s) tried: ['article\\/(?P[0-9]+)$']

models.py
from django.db import models
from django.contrib.auth.models import User
from django.conf import settings
from django.urls import reverse

class Article(models.Model):
	title = models.CharField(max_length = 50)
	author = models.ForeignKey(User, on_delete = models.CASCADE)
	tag = models.ForeignKey(Tag, default = 0 ,on_delete = models.CASCADE)
	text = models.TextField()
	image = models.ImageField(upload_to='article/%Y/%m/%d', blank=True)
	likes = models.ManyToManyField(settings.AUTH_USER_MODEL, blank = True, related_name = 'post_likes')
	pub_date = models.DateTimeField()
	

	def get_absolute_url(self):
		return reverse('list', kwargs={'pk': self.pk})

	def __str__(self):
		return self.title
# Create your models here.


views.py
class PostLike(RedirectView):
	def get_redirect_url(self, *args, **kwargs):
		pk = self.kwargs.get('pk')
		obj = get_object_or_404(Article, pk = pk)
		url_ = obj.get_absolute_url()
		user = self.request.user
		if user.is_authenticated():
			obj.likes.add(user)
		return url_


urls.py
from django.urls import path
from django.contrib.auth import views as authViews
from . import views
from .views import PostLike

urlpatterns = [
    path('', views.blog, name = 'blog'),
    path('exit/', authViews.LogoutView.as_view(), name='exit'),
    path('tag_list/<int:tags_id>', views.list_article_tag ,name = 'list_article_tag'),
    path('article/<int:articles_id>', views.list, name = 'list'),
    path('article/<int:articles_id>/leave_comment', views.leave_comment, name = 'leave_comment'),
    path('new_article/', views.new_article, name = 'new_article'),
    path('list_user/', views.list_user, name = 'list_user'),
    path('edit_article/<int:id>', views.edit_article, name = 'edit_article'),
    path('article/<int:pk>/likes', PostLike.as_view(), name = 'like')
]
  • Вопрос задан
  • 4270 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы