Есть модель User, наследованная от AbstractUser и дополненная:
class User(AbstractUser):
email = models.EmailField(unique=True)
bio = models.TextField(blank=True, max_length=1000)
date_of_birth = models.DateField(blank=True, null=True)
И модель Поста:
class Post(models.Model):
theme = models.CharField(max_length=50)
content = models.TextField()
photo = models.ImageField(upload_to='media/')
status = models.BooleanField(default=True)
create_date = models.DateTimeField(auto_now_add=True)
update_date = models.DateTimeField(auto_now=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
Форма:
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['theme', 'content', 'photo', 'user']
widgets = {
'theme': forms.TextInput(attrs={'class': 'form-control'}),
'content': forms.Textarea(attrs={'class': 'form-control', 'rows': 5}),
}
Вьюха:
class CreatePost(LoginRequiredMixin, CreateView):
form_class = PostForm
template_name = '/add_post.html'
raise_exception = True
Всё хорошо работает, но… При публикации Поста внизу всегда можно выбрать Пользователя из списка (выпадающий список), что не есть хорошо.
Как сделать так, чтоб пользователь сам подтягивался тот, который публикует Пост?
(если убираю "user" из полей в форме
fields = ['theme', 'content', 'photo', 'user']
то Пост просто не отправляется, не находит юзера, и выдаёт ошибку.)
Буду благодарен любой помощи.