@autumnfall

Как автоматически проставлять юзернейм?

Сделал модель новостей, там где автора присоединил к таблице юзера одним ко многим. Если через админку создавать новость, то там приходится явно выбирать автора публикации 63bdb77f63da5357290389.png, если создавать через форму на сайте, то там недопустимо так делать(я считаю) 63bdb7fad49fd315514801.png
Так вот как сделать, чтобы никнейм автора проставлялся автоматически?

models.py
class News(models.Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    image = models.ImageField(upload_to='images/%Y/%m/%d/')
    description = models.CharField(max_length=256, blank=True)

forms.py
class AddNewsForm(forms.ModelForm):
    class Meta:
        model = News
        fields = ['image', 'description']

views.py
class AddNews(CreateView):
    form_class = AddNewsForm
    template_name = 'news/add_news.html'

    def get_success_url(self, *args, **kwargs):
        return reverse_lazy('profiles:profile', kwargs={"slug": self.request.user.username})
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Istorik
Должно быть так, но переносил я со своего старого проекта...

views.py

class AddNews(CreateView):
    form_class = AddNewsForm
    template_name = 'news/add_news.html'

    def get_success_url(self, *args, **kwargs):
        return reverse_lazy('profiles:profile', kwargs={"slug": self.request.user.username})

    def get_form_kwargs(self):
        kwargs = super().get_form_kwargs()
        kwargs.update({'initial': {
            'author ': self.request.user,
            }
        })
        return kwargs
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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