@xRA1Nx

Почему возникла ошибка Cannot assign "'Author object (1)'": «Post.author» must be a «Author» instance?

Пытаюсь добавить статью. При выборе автора из списка выходит нижеприведенная ошибка. Я в choises поле authors формы я подставляю непосредственно обьекты сущности POST, однако получаю указанную ошибку...

Ошибка: Cannot assign "'Author object (1)'": "Post.author" must be a "Author" instance.

модели:

class Author(models.Model):
    is_active = models.BooleanField(default=True)
    user = models.OneToOneField(User, on_delete=models.CASCADE)

class Post(models.Model):
    text = models.TextField(max_length=50 * 1000)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

    def get_absolute_url(self):
        return f'/{self.id}'

формы:

authors = list(map(lambda x: (x, x.user.username), Author.objects.all()))
cats = list(map(lambda x: (x.id, x.name), Category.objects.all()))

class PostAddForm(ModelForm):
    author = ChoiceField(
        label='авторы',
        choices=authors,
        widget=Select(attrs={
            'placeholder': "выберите автора",
            'class': "inp",
        })
    )
      class Meta:
      model = Post
      fields = ['text', 'author']

Вьюха:

class PostAddView(CreateView):
template_name = 'post_add.html'
form_class = PostAddForm
  • Вопрос задан
  • 226 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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