【发布时间】:2020-08-11 07:20:48
【问题描述】:
我正在使用 django 项目在拍卖网站上工作。我有一个投标模型。我已经在 admin.py 中注册了模型,但是当我尝试从管理界面出价时,它并没有在主网站页面中更新。但是通过网站,出价正在完美更新,其他模型也运行良好。
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)
这是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')
【问题讨论】:
-
确保在运行 suerver
python manage.py makemigrations和python manage.py migrate之前已经运行了这些命令 -
你能展示你的GetBid函数吗?您是否在从管理面板添加出价时从数据库中删除旧出价。因为您是在正常的 bidsubmit 函数中这样做的。
标签: python django django-models django-admin-actions django-webtest