Как присвоить статье в качестве автора имя текущего пользователя?

Никак не пойму, почему не работает этот код.
models.py
class Article(models.Model):
    author = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.PROTECT,
    )
    text = models.CharField(
        "Article text",
        max_length=128, 
        null=False, 
        blank=False,
    )

forms.py
from myapp.models import Article
class ArticleForm(ModelForm):
    class Meta:
        model = Article
        fields = (
            'text',
        )

views.py
@login_required
def article(request):
    if request.method == "POST":
        form = ArticleForm(request.POST or None)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.save()
            messages.success(request, "Создана запись в базе данных!")
            return HttpResponseRedirect('/form-ok/')
    else:
        form = ArticleForm()
    context = {
        "form": form
    }
    return render(request, 'article.html', context)


Я думаю суть ясна: здесь упрощено, но пользователь создает запись и надо чтобы в базе создавалась запись с полями "текст_статьи" и "автор_статьи".
Читал и здесь, и здесь даже.
  • Вопрос задан
  • 308 просмотров
Решения вопроса 1
@deliro
instance.author = request.user
Если юзер авторизован, конечно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы