Как добавить в экземпляр поле, которого нет в модели, но которое создано в форме Django? Django

У меня есть модель Книга:

class Book(core.BaseModel):

    name = models.ForeignKey(
        FishingGear, verbose_name="Name", on_delete=models.PROTECT,
        related_name='name',
    )
    library = models.ForeignKey(
        Library, models.PROTECT, related_name='library_places',
        verbose_name='Library',
    )
    tag_number = models.PositiveIntegerField('Tag Number', validators=[
        MinValueValidator(1),
        MaxValueValidator(MAX_TAG_NUMBER),
    ])

В файле forms.py я создал новое поле :

class BookChangeStatusForm(core.ModelForm):
    start_tag_number = forms.IntegerField(label='Start number', min_value=1)

В том же forms.py у меня есть метод, который берет старые данные и создает новую книгу! Но я хочу, чтобы без tag_number он создавал поле 'start_tag_number':

 def save(self, commit=True):
        # instance = super().save(commit=False)
        instance = Book.objects.create(
            name=self.instance.name,
            library=self.instance.library,
            tag_number=self.instance.**start_tag_number**,
        )


        return instance

    class Meta:
        model = Book
        fields = ()

Но я получил ошибку:

Book object has no attribute 'start_tag_number'

Мой views.py

class BookTagView(core.UpdateView):
    form_class = BookChangeStatusForm
    template_name = 'book/book_tag.html'
    success_url = reverse_lazy('book:book-list')

Я хочу взять в forms.py OLD экземпляр в UpdateView и создать новый экземпляр со старыми данными, но без 'tag_number' вставить 'start_tag_number'! Пожалуйста, помогите мне понять, где ошибка!

Метод сохранения вашей формы должен иметь вид

    def save(self, commit=True):
        instance = super().save(commit=False)
        instance.tag_number = self.cleaned_data['start_tag_number']
        if commit:
            instance.save()
        return instance
Вернуться на верх