微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用 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 举报,一经查实,本站将立刻删除。