@EnotShow

Как автоматически выбрать пользователя в качестве автора статьи?

Учусь писать сайты на django на основе учебного проекта.
Есть модель:
class Post(models.Model):
    title = models.CharField(max_length=255, verbose_name="Заголовок")
    content = models.TextField(blank=True, verbose_name="Текст статьи")
    photo = models.ImageField(upload_to="photos/%Y/%m/%d/", blank=True, verbose_name="Фото")
    user = models.ForeignKey(
        User,
        on_delete=models.CASCADE,
        verbose_name='Пользователь')
    slug = models.SlugField(unique=True, verbose_name='Слаг')
    time_create = models.DateTimeField(auto_now_add=True, verbose_name="Время создания")
    time_update = models.DateTimeField(auto_now=True, verbose_name="Время изменения")
    is_published = models.BooleanField(default=True, verbose_name="Статус публикация")
    cat = models.ForeignKey(
        'Category',
        on_delete=models.CASCADE,
        verbose_name='Категория'
    )

В'юшка:
class PostCreateView(LoginRequiredMixin, CreateView):
    model = Post
    form_class = AddPostForm

    template_name = "forum/addpost.html"
    context_object_name = 'form'

    login_url = 'login'

    def get_context_data(self, *, object_list=None, **kwargs):
        context = super().get_context_data(**kwargs)
        context['menu'] = menu
        context['auth'] = no_auth
        context['title'] = 'MyForum'
        return context

Форма:
class AddPostForm(ModelForm):
    class Meta:
        model = Post
        fields = ['title', 'slug', 'photo', 'cat', 'content']

И наконец темплейт:
{% extends 'forum/base.html' %}
{% block content %}

    <form method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Send message">
    </form>

{% endblock %}

Как сделать так, чтобы при создании поста, авторизованный пользователь становился автором поста (поле user)?
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы