Reputation: 1
I am working on a auction site using django project. I have a model for placing bid. I have registered the model in admin.py , but when I try to place bid from admin interface it is not updating in the main website page. But through website the bid is updating perfectly and other models are working perfectly.
models.py:
from django.contrib.auth.models import AbstractUser
from datetime import datetime
from django.db import models
CHOICES = (
('fashion','Fashion'),
('tools', 'Tools'),
('toys','Toys'),
('electronics','Electronics'),
('home accesories','Home accessories'),
('books','Books'),
)
class User(AbstractUser):
pass
class Bid(models.Model):
user = models.CharField(max_length=64)
title = models.CharField(max_length=64)
listingid = models.IntegerField()
bid = models.IntegerField()
class Listing(models.Model):
owner = models.CharField(max_length=64)
title = models.CharField(max_length=64)
description = models.TextField()
price = models.IntegerField()
category = models.CharField(max_length=64, choices=CHOICES, default='fashion')
link = models.CharField(max_length=10000,default=None,blank=True,null=True)
time = models.CharField(max_length=64, default= datetime.now().strftime(" %d %B %Y %X "))
class Comment(models.Model):
user = models.CharField(max_length=64)
time = models.CharField(max_length=64, default= datetime.now().strftime(" %d %B %Y %X "))
comment = models.TextField()
listingid = models.IntegerField()
admin.py:
from django.contrib import admin
from .models import User, Listing, Bid, Comment
# Register your models here.
admin.site.register(Bid)
admin.site.register(User)
admin.site.register(Listing)
admin.site.register(Comment)
This is the function for bidsubmit in views.py (I have imported Bid model in this file):
def bidsubmit(request,listingid):
current_bid = Listing.objects.get(id=listingid)
current_bid = current_bid.price
if request.method == "POST":
user_bid = int(request.POST.get('bid'))
if user_bid > current_bid:
listing_items = Listing.objects.get(id=listingid)
listing_items.price = user_bid
listing_items.save()
try:
if Bid.objects.filter(id=listingid):
bidrow = Bid.objects.filter(id=listingid)
bidrow.delete()
b = Bid()
b.user=request.user.username
b.title = listing_items.title
b.listingid = listingid
b.bid = user_bid
b.save()
except:
b = Bid()
b.user=request.user.username
b.title = listing_items.title
b.listingid = listingid
b.bid = user_bid
b.save()
response = redirect('auctions:listingpage',id=listingid)
response.set_cookie('errorgreen','bid successful!!!',max_age=3)
return response
else :
response = redirect('auctions:listingpage',id=listingid)
response.set_cookie('error','Bid should be greater than current price',max_age=3)
return response
else:
return redirect('auctions:index')
Upvotes: 0
Views: 614
Reputation: 2110
Make sure that you have registered your app in your project settings.py
(append your app name which includes your Bid
model in INSTALLED_APPS
) and then run it's related management commands (i.e. manage.py makemigrations
and manage.py migrate
). I hope this will solve your problem.
Upvotes: 0