Django - IntegrityError ... Ограничение NOT NULL не сработало при сохранении()
Я очень новичок в Python и Django, так что, пожалуйста, потерпите меня. Я столкнулся с постоянной ошибкой, связанной со строкой "saleitem.save()" в нижеприведенном файле views.py. Я пытаюсь создать форму, которая позволит мне заполнять различные поля, а затем сохранять и отображать эту информацию на странице active_listing.html.
views.py
def create_listing(request):
if request.method == "POST":
saleitem = Listing()
saleitem.user = request.user
saleitem.item =request.POST.get("item")
saleitem.description = request.POST.get("description")
saleitem.category = request.POST.get("category")
saleitem.bid = request.POST.get("bid")
saleitem.image = request.POST.get("image_upload")
saleitem.save()
listings = Listing.objects.all()
empty = False
if len(listings) == 0:
empty= True
return render(request, "auctions/active_listing.html",{
"listings": listings,
"empty": empty
})
else:
return render(request, "auctions/create_listing.html")
models.py
class User(AbstractUser):
pass
class Listing(models.Model):
saleitem = models.CharField(max_length = 60)
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="seller", null=True)
description = models.TextField()
category = models.CharField(blank = True, max_length= 60)
bid = models.DecimalField(max_digits=5, decimal_places=2, default=0)
image = models.URLField(blank=True, null=True)
listing_status = models.BooleanField(blank=False, default= True)
winning_bidder = models.ForeignKey(User, blank= True, on_delete= models.CASCADE, related_name = "winner", null = True)
bidding_status = models.BooleanField(default=False)
def __str__(self):
return self.item
Я попробовал использовать форму Django, а не html-шаблон, и столкнулся с той же проблемой. Когда я заполняю все поля в html-форме и нажимаю кнопку сохранения, я сталкиваюсь с ошибкой:
IntegrityError at /create_listing Сбой ограничения NOT NULL: auctions_listing.bid
Может ли кто-нибудь указать мне правильное направление, что нужно исправить? В сообщении об ошибке говорится, что проблема связана с auctions_listing.bid, но трассировка указывает на saleitem.save(). Любой совет будет принят с благодарностью.