#python #django #forms
#python #django #формы
Вопрос:
У меня есть раздел блога на моем веб-сайте, и я сделал CommentUpdateView, и после отправки формы он выдает мне эту ошибку
ModuleNotFoundError at /blog/post/comment/update/18/
No module named 'test-post-ecomon'
но я не понимаю, почему, потому что этот пост существует, и я реализовал get_absolute_url в моих моделях контактов, и он должен работать правильно? Когда я создаю новое сообщение, оно работает.
Вид
class CommentUpdateView(LoginRequiredMixin, UpdateView):
model = Comment
form_class = CommentUpdateForm
template_name = 'blog/update_comment.html'
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
def get_queryset(self, *args, **kwargs):
return super().get_queryset(*args, **kwargs).filter(author=self.request.user)
Модель
class Comment(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')
reply = models.ForeignKey('self', on_delete=models.CASCADE, null=True, related_name='replies')
content = models.TextField(_('Content'))
posted_date = models.DateTimeField(_('Posted Date/Time'), auto_now_add=True)
updated_date = models.DateTimeField(_('Updated Date/Time'), auto_now=True)
def __str__(self):
return f'{self.author.username} - {self.post.title}'
def get_absolute_url(self):
return reverse('post', self.post.slug)
url-адреса
path('post/<slug:slug>/', PostDetailView.as_view(), name='post'),
path('post/comment/update/<int:pk>/', CommentUpdateView.as_view(), name='update-comment'),
Ответ №1:
Попробуйте переписать свой get_absolute_url
, как это:
def get_absolute_url(request):
return reverse('post', args=(self.post.slug, ))
PS Вы действительно не хотите переназначать пользователя в своем представлении обновления, поскольку это снижает производительность, в то время как вы практически ничего не делаете