因此,django声称群组是“向多个用户应用标签和权限的通用方式”。我的问题是这段代码是什么样的,这段代码在哪里生效?
具体来说,群组是否需要和模型类型?任何帮助揭示这些工作将如何非常有用。
PS:如何将群组应用于当前登录的用户?
感谢您的帮助。
答案 0 :(得分:1)
群组只是models
。
class Player(models.Model):
name = models.CharField(max_length=100)
age = models.PositiveIntegerField()
以上,Player
model
用于添加玩家。现在,如果你想把这些球员组成队伍,你可以做下面的事情:
class Team(models.Model):
players = models.ManyToManyField(Player)
team_name = models.CharField(max_length=100)
现在,您只需要创建一个团队并继续添加玩家。很简单吧?
好的,直到现在。让我们说,今天有4场比赛,这意味着8支队伍参加了比赛。在今天比赛的总球员中,有15人受伤,10人被禁止参加下一场比赛。因此,如果你想为受伤和被禁止的球员制作小组,你可以采取以下措施:
class Injured(models.Model):
players = models.ManyToManyField(Player)
class Banned(models.Model):
players = models.ManyToManyField(Player)
那就是它。
现在,问题是为什么要使用群组?
当然,不需要编写组模型,您也有其他选择。
class Player(models.Model):
name = models.CharField(max_length=100)
age = models.PositiveIntegerField()
team = models.CharField(max_length=100)
is_injured = models.BooleanField(default=False)
is_banned = models.BooleanField(default=False)
现在想: 15名球员受伤,这意味着你必须更新15名球员' is_injured
到True
。 8被禁止,这意味着你必须改变8名球员和#8; is_banned
到True
。另外,你必须一次又一次地写出每个球员的名字。这真的非常耗时。现在您是否看到了群组的重要性?
此代码在哪里生效?
在models.py
文件中。
答案 1 :(得分:0)
用户群是' django.contrib.auth'的一部分。 如果您将它与您的用户模型(Django 1.4及更低版本中的任何普通用户,或自定义用户模型WITH" PermissionsMixin"在Django 1.5或更高版本中)一起使用,那么您将在数据库中找到名为的相应表:
每个用户都获得所有权限集
有关详细信息,请参阅django.contrib.aut。
中解释了将用户添加到群组