【问题标题】:How to create relations with django如何与 django 建立关系
【发布时间】:2016-08-05 14:15:52
【问题描述】:

这将是我在这里的第一篇文章,所以我希望一切都是正确的。

我在使用 django 时遇到了一些麻烦,我尝试制作一个小彩票游戏。 对于这个游戏,我有一个名为 bitcoinlottery 的应用程序,并且在该应用程序中有 2 个模型。至于现在它们看起来像这样:

from django.db import models
from django.utils import timezone

class Lottery(models.Model):
   owner = models.ForeignKey('auth.User')
   title = models.CharField(max_length=100)
   slug = models.SlugField(max_length=110)
   max_players = models.IntegerField()
   total_players = models.CharField(default=0)
   online = models.BooleanField(default=True)
   create_date = models.DateTimeField(default=timezone.now)

class Ticket(models.Model):
   owner = #this most be related to the user that buy the ticket
   lottery_id = #this most be related to the id of the lottery
   ticket_id =  #a random number

现在我有两个问题我想不通。

第一个是如何在 Lottery max_players 上创建相关的票数,max_players 将是可用的最大玩家数/票数。

第二个问题是有一个选项可以在彩票管理页面的列表中查看所有可用的彩票吗?如果是,有什么方法可以做到这一点。

感谢您的帮助。 祝你有美好的一天。

【问题讨论】:

    标签: python django


    【解决方案1】:

    首先,我不确定您的所有者字段是否有效。我没有看到任何 auth 包的导入

    owner = models.ForeignKey('auth.User')
    

    首先,我建议您查看post 以更改这种关系。

    您的两个问题都需要更清楚地了解您实际要实现的目标。如果 Ticket 模型也完成了,那将会很有帮助。

    对于给定的信息,很难说这是否可能看起来两个模型之间没有关系。

    class Ticket(models.Model):
       # This is not required unless you want it for some reason, you can use
       # this owner from the lotter_id
       owner = #this most be related to the user that buy the ticket
       lottery_id = models.ForiegnKey(Lottery)
       ticket_id =  #a random number
    
    def __str__(self):
        return self.lottery_id, function_that_return_max_tickets()
    

    使用上述关系,您可以根据您的要求在ModelManager 中编写自定义函数。

    通读 Django 提供的 Mangers,这些可用于编写计算票证的最大数量并返回的函数,如果您想在 views.py 中使用 ORM 使用它们。

    【讨论】:

    • 我将此标记为已解决,因为在您的指导下,我已经完成了我需要的工作,再次感谢您提供链接
    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 2020-03-19
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2018-02-15
    相关资源
    最近更新 更多