Aravind MS
Aravind MS

Reputation: 1

Django model not working through admin interface

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

Answers (1)

Roham
Roham

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

Related Questions