适当的玩家和奖品模型关系?

时间:2017-05-27 00:35:27

标签: python django

在抽象模型关系方面,我似乎存在心理障碍。

我想为玩家提供奖品。并非所有玩家都有奖品,但如果需要,可以提供清单。

这是我到目前为止所做的:

class Prize(models.Model):
    player = models.ForeignKey(Profile, related_name="gifts", null=True, blank=True)

我应该可以执行Profile.prizes并获取列表(如果存在),但是......

a)这可能是错误的关系 b)这可能是倒退......

我只是需要稍微调整一下才能回到正轨。感谢。

2 个答案:

答案 0 :(得分:3)

您可以将ManyToManyField用于Player型号:

class Player(models.Model):
    prizes = models.ManyToManyField("Prize")


class Prize(models.Model):
    # prize_name = ...
    # prize_amount = ...

然后你可以通过以下方式获得特定玩家的所有奖品:

player = Player.objects.get(id=12)
player.prizes.all()

有关ManyToMany关系的更多信息和示例,请查看here

答案 1 :(得分:0)

我会这样建议:​​

public function cquotation(){
        $data = $this->salesModel->showCustomer();
        $this->load->view('v_navbar');
        $this->load->view('v_leftside');
        $this->load->view('v_cquotation',array('data'=>$data));
    }

通过使用这种方法,你可以获得玩家拥有的所有奖品,

class Prize(models.Model):
    # write here prize model fields


class Player(models.Model):
    prizes = models.ManyToManyField(Prize, blank=True)

你也可以找到有多少玩家获得任何特定奖品,

player = Player.objects.get(id=123)
prizes = player.prizes.all()