如何使用 Django 更新对象并在特定时间创建一个对象?

问题描述

我正在建立一个拍卖网站,我需要创建一个对象,在拍卖结束后向我们显示拍卖的获胜者! 我的模型.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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...