Получение этой ошибки при отправке формы > ValueError at /forms_testing/forms_testing/ Field 'id' expected a number but gets 's'

Это новое.

Я получаю эту ошибку при отправке формы.

У меня есть другая форма с одним текстовым полем, которое работает нормально.

Этот вызывает ошибки.

Что это значит?

Это потому, что он ожидает "id", но я отправляю "slug" вместо него?

Если да, то как я могу заставить его работать, отправляя "id" и в то же время убедиться, что "slug" отображается в url-адресе?


Field 'id' expected a number but got 's'. What does "s" mean? Where is it coming from?


Я уже пытался исправить это, удалив миграции и сделав новую миграцию, и попробовал ее заново, и все еще не исправлено.

views.py


def forms_testing(request):

    if request.method == 'POST':
        add_book_form = AddBookForm(request.POST)
        if add_book_form.is_valid():  
            add_book_form.save()
            return redirect('forms_testing:forms_testing')
    else:
        add_book_form = AddBookForm()
    return render(request,'forms_testing/forms_testing.html', {
            'add_book_form':add_book_form
        })

urls.py

    path('book/<slug:book>/', views.book, name='book'),

models.py


class Book(models.Model):
    title = models.CharField(max_length=300,blank=True)
    slug = models.SlugField(max_length=300,blank=True)
    author = models.ManyToManyField(User, null=True,blank=True)
    featured_image = models.ImageField(upload_to='media/FEATURED_IMAGES/',blank=True)
    genre = models.ManyToManyField(Genres,  null=True, blank=True)

    def get_absolute_url(self):
        return reverse('forms_testing:book', args=[self.slug])

    def __str__(self):
        return self.title


есть ли что-нибудь не на своем месте?

помогите.

Вернуться на верх