Получение этой ошибки при отправке формы > 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
есть ли что-нибудь не на своем месте?
помогите.