问题描述
我正在建立一个拍卖网站,我需要创建一个对象,在拍卖结束后向我们显示拍卖的获胜者! 我的模型.py
class Auction(models.Model):
product = models.ForeignKey(Product,on_delete=models.CASCADE)
start_time = models.DateTimeField(auto_Now_add=True)
updated_at = models.DateTimeField(auto_Now=True)
end_time = models.DateTimeField() #when times up Winner should be created Automatically
start_price = models.DecimalField(verbose_name="Original Price",max_digits=15,decimal_places=1,default=0.0)
current_price = models.DecimalField(verbose_name="Current Price",default=0.0)
next_price = models.DecimalField(verbose_name="Next Price",default=0.0)
step = models.DecimalField(verbose_name="Raise Price",default=0.0)
sold_price = models.DecimalField(verbose_name="Sold Price",blank=True,null=True)
is_active = models.BooleanField(default=True)
is_manual = models.BooleanField(default=True)
def __str__(self):
return self.product.title
class Bid(models.Model):
Types = (
('auto','Automatically'),('user','By user own')
)
auction = models.ForeignKey(Auction,on_delete=models.CASCADE)
user = models.ForeignKey(User,on_delete=models.CASCADE)
time = models.DateTimeField(auto_Now_add=True)
price = models.DecimalField(verbose_name="Bid Price",default=0.0)
action = models.CharField(max_length=120,default="user",choices=Types)
def __str__(self):
return str(self.price)
class Winner(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE)
auction = models.ForeignKey(Auction,on_delete=models.CASCADE)
won_price = models.DecimalField(verbose_name="Won Price",decimal_places=1)
won_time = models.DateTimeField()
def __str__(self):
return self.user.username
对于拍卖过程,我使用的是 Django Channels,这意味着如果拍卖页面有观众(当 WebSocket 开启时),我可以创建获胜者,否则我无法做到这一点!这就是为什么我必须在后端做
这是我的 docker-compose.yml
文件(已编辑):
version: '3'
services:
dbauction:
container_name: mysite
image: postgres:12.2
environment:
POSTGRES_DB: db_mysite
POSTGRES_USER: user
POSTGRES_PASSWORD: mysitepass
volumes:
- postgres_data:/var/lib/postgresql/mysite/
mysiteweb:
container_name: mysiteweb
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- dbauction
links:
- redis:redis
env_file:
- ./.env.dev
redis:
restart: always
image: redis:latest
ports:
- "6379:6379"
volumes:
- redisdata:/data
volumes:
postgres_data:
redisdata:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)