Страница Не найдена 404, когда я пытаюсь создать новый комментарий к объекту публикации?

#python #django #django-models #django-views #django-forms

Вопрос:

Я пытаюсь разрешить пользователям создавать комментарии из listview в социальном приложении, над которым я работаю в настоящее время, но мне трудно разработать шаблон. Я продолжаю получать сообщение об ошибке 404 при попытке загрузить представление списка. Вот представление списка форм, от которого унаследовано мое представление списка записей.

 class FormListView(FormMixin, ListView):
    def get(self, request, *args, **kwargs):
        if request.method == 'GET':
            post_id = request.GET.get('post_id')
            comment = request.GET.get('comment', False)
            post_obj = get_object_or_404(Post, pk=post_id)
            session_obj = User.objects.get(username=request.user.username)
            create_comment = Comment.objects.create(
                                            post=post_obj,
                                            user=session_obj, 
                                            comment=comment)
            create_comment.save()
            
        # From ProcessFormMixin
        form_class = self.get_form_class()
        self.form = self.get_form(form_class)
        # From BaseListView
        self.object_list = self.get_queryset()
        allow_empty = self.get_allow_empty()
        if not allow_empty and len(self.object_list) == 0:
            raise Http404(_(u"Empty list and '%(class_name)s.allow_empty' is False.")
                          % {'class_name': self.__class__.__name__})
        context = self.get_context_data(object_list=self.object_list, form=self.form)
        return self.render_to_response(context)
    
    def post(self, request, *args, **kwargs):
        if request.method == "POST":
            description = request.POST['description']
            pic = request.FILES.get('pic', False)
            #tag = request.FILES['tag']
            user_obj = User.objects.get(username=request.user.username)
            post_data = Post(username=user_obj,pic=pic,description=description,)
            post_data.save()
            messages.success(request, f'Posted Successfully')
            return redirect('feed:feed')
        
            
        return self.get(request, *args, **kwargs)

 

По одной странной причине я могу создать новое сообщение из списка сообщений, но комментарий был для меня проблемой в течение последних двух недель, и я смотрю здесь, но, похоже, не могу найти решение, которое подходит мне.

 class PostListView(FormListView):
    model = Post
    form_class = NewPostForm
    form_class = NewCommentForm

 

Это моя модель комментариев

 class Comment(models.Model):
    post = models.ForeignKey(Post, related_name='comments', on_delete=models.CASCADE)
    username = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='comments', on_delete=models.CASCADE)
    comment = models.CharField(max_length=500)
    comment_date = models.DateTimeField(auto_now_add=True)

 

Мой Form.py

 class NewCommentForm(forms.ModelForm):

    class Meta:
        model = Comment
        fields = ['comment']

 

Вот мой URL-адрес для PostListView.

 path('', PostListView.as_view(), name='feed'),
 

Комментарии:

1. вам нужно будет показать свой urls.py и URL-адрес, который дает вам 404.

2. Я просто делюсь своим URL @Abhyudai

3. как называется приложение, в котором это находится?

4. Название приложения-лента! @Loukik