Подскажите что делаю не так. Есть модели
class Book(models.Model):
book_name = models.CharField(max_length = 200)
book_available = models.IntegerField(default=0)
book_author = models.CharField(max_length = 200)
class Bag(models.Model):
bag_user = models.OneToOneField(User)
bag_book = models.ManyToManyField(Book, blank=True, null = True)
class Address(models.Model):
country = models.CharField(verbose_name = 'Страна', max_length = 150)
address_bag = models.ForeignKey(Bag)
Мне нужно сделать фунцию которая создает адресс (через форму) в БД, привязанную к корзине Bag, и что бы количество книг book_available уменьшалось после создания формы.
Вот моя views.py
def order(request, user_id):
price = 0
usr = auth.get_user(request)
bag = Bag.objects.get(bag_user = usr)
book = Book.objects.all()
form = AddressForm()
if request.POST:
form = AddressForm(request.POST)
form.bag = bag
if form.is_valid():
form.save()
for b in bag.bag_book.all():
price += bag.bag_book.book_price
for b in book.book_name:
if b in book.book_name:
book.book_available -= 1
bag.bag_book.delete(b)
else:
return redirect('bag.html')
return render(request, 'book_order.html', {'price':price, 'form':form})
Выдает ошибку:
IntegrityError at /books/order/1/
NOT NULL constraint failed: book_address.address_bag_id