Как можно добавить Имя автора поста в таблицу Django?
Я разрабатываю сайт на Django где есть возможность выкладывать посты. Как я могу внести в БД автора поста?
'''views.py'''
def create_post(request):
error = ''
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
form.save()
return redirect('crypto')
else:
error = 'Invalid Form!!!'
form = PostForm()
context = {
'form': form,
'error': error,
}
return render(request, 'crypto/create-post.html', context)
#models.py
class Post(models.Model, ):
author = models.TextField()
title = models.CharField('Название поста', max_length=125)
text = models.TextField('Описание')
created_date = models.DateTimeField(default=timezone.now)
Ответы (1 шт):
Автор решения: kidig
→ Ссылка
Я так понимаю, что посты выкладывают авторизованные пользователи.
Поэтому текущего пользователя можно найти в request.user, и при создании поста сохранить в Post:
if form.is_valid():
new_post = form.save(commit=False)
new_post.author = request.user.username
new_post.save()
PS - но обычно вместо текстового поля для автора, создают ForeignKey с моделью User.