#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-запрос для отправки ввода формы в серверную часть.