0

我正在使用 django 项目在拍卖网站上工作。我有一个投标模型。我已经在 admin.py 中注册了模型,但是当我尝试从管理界面出价时,它并没有在主网站页面中更新。但是通过网站,出价正在完美更新,其他模型也运行良好。

模型.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()

管理员.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)

这是views.py中bidsubmit的函数(我在这个文件中导入了Bid模型):

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

1 回答 1

0

确保您已经在项目中注册了您的应用程序settings.py(在 中附加您的应用程序名称,其中包含您的Bid模型INSTALLED_APPS),然后运行它的相关管理命令(即manage.py makemigrationsmanage.py migrate)。我希望这能解决你的问题。

于 2020-08-11T08:10:48.243 回答