简体   繁体   中英

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')

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 (ie manage.py makemigrations and manage.py migrate ). I hope this will solve your problem.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM