Как зарегистрированный пользователь может прокомментировать сообщение? django

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

#python #django #django-модели #django-просмотры

Вопрос:

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

Как я могу исправить поле участника для пользователя, который в данный момент вошел на сайт?

И как я могу сделать раздел комментариев только ниже по сообщению и не перенаправлять на другую страницу?

Вот мой view.py

 def comment_post(request, slug):
    post = get_object_or_404(Post, slug=slug)
    if request.method == "POST":
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.post = post
            comment.save()
            return redirect('samplepost', slug=post.slug)
    else:
        form = CommentForm()
    return render(request, 'blogapp/comment.html', {'form': form})
  

и вот мой models.py

 class Comment(models.Model):
    author = models.ForeignKey(User,on_delete=models.CASCADE, null=True)
    post = models.ForeignKey(Post, on_delete=models.CASCADE, null=True, related_name='comments')
    body = models.TextField()
    date_created = models.DateTimeField(auto_now_add=True)
  

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

1. покажите свой forms.py

Ответ №1:

«Как я могу исправить поле участника для пользователя, который в данный момент вошел на сайт?» — чтобы получить доступ к текущему зарегистрированному пользователю, используйте request.user в своем шаблоне Django. Это дает вам объект User. Если у вас есть поле имени пользователя в модели пользователя, вы, конечно, можете использовать request.user.username для получения имени пользователя.

«И как я могу сделать раздел комментариев только ниже сообщения и не перенаправлять его на другую страницу?» — Я предполагаю, что вы имеете в виду размещение раздела комментариев под сообщением и публикацию комментариев без перенаправления страницы. Для этого создайте раздел комментариев в виде текстовой области внутри формы, разместите элемент там, где вы хотите, используя HTML и CSS, и используйте AJAX-запрос для отправки ввода формы в серверную часть.