【问题标题】:In Django, How to call the 'User Group' as a foreign key in a model class?在 Django 中,如何在模型类中调用“用户组”作为外键?
【发布时间】:2018-09-05 02:46:31
【问题描述】:

我创建了一个名为 Question 的模型类。我希望只有特定的用户组可以回答问题。现在,如何从用户组中将外键带到这里?

在我的数据库中有一个问题表。会有很多问题。但并非所有用户都可以查看或回答问题。这将取决于用户属于哪个用户组。所以我必须在问题表中指定允许哪个用户组回答问题。现在,我必须在问题表中创建一个字段,我(或更具体地说是管理员)可以在其中选择一个用户组。为此,我必须将“组”表链接为表中的外键。

from django.contrib.auth.models import Group

class Question(models.Model):

    # Fields
    qs_title = models.CharField(max_length=350)
    qs_status = models.IntegerField()

    # Relationship Fields
    qs_f_track = models.ForeignKey('cmit.QuestionTrack', )
    responsible = models.ForeignKey(Group) # (Is this line Okay? not working though.)

当管理员尝试添加它说的问题时,上面的代码不起作用,

No Such Column: cmit_question.qs_f_responsible_id

【问题讨论】:

  • 您是否尝试创建Question 实例?或者尝试实现permission 系统?您的问题不完整
  • 两者,事实上(虽然我不确定我的程序是否正确!)。让我解释。在我的数据库中有一个问题表。会有很多问题。但并非所有用户都可以查看或回答问题。这将取决于用户属于哪个用户组。所以我必须在问题表中指定允许哪个用户组回答问题。现在,我必须在问题表中创建一个字段,我(或更具体地说是管理员)可以在其中选择一个用户组。为此,我必须将“组”表链接为表中的外键。
  • Godfrey GoodluckAnswer 中写道“您在管理员中创建了一个组吗?”

标签: django django-models


【解决方案1】:

好的...有一个解决方案...有点,本身... 关系应该是多对多... 让我们看看代码......

qs_f_group = models.ManyToManyField(Group)
qs_group = models.CharField(max_length=350, null=True)

def get_group(self):
    return self.qs_f_group.all().first()

功能是获取组的第一个条目。 非常感谢。

(虽然我没有使用相同的功能。一个函数根本不会帮助我。 相反,我是静态的:

CHOICE_LIST = (('0', 'Undefined'), ('staffGroup', 'staffGroup'), ('staffGroup02', 'staffGroup02'), ('staffGroup03', 'staffGroup03'), ('staffGroup04', 'staffGroup04'), ('staffGroup05', 'staffGroup05'),)
qs_responsible = models.CharField(max_length=350, default=0, choices=CHOICE_LIST, verbose_name='Responsible Party')

不推荐,显然! )

【讨论】:

  • 还有一件事....您能否建议我如何获取视图中的用户列表(将随着用户更改而自动更改),以便我可以将其用作选择列表自动?
猜你喜欢
  • 1970-01-01
  • 2012-06-22
  • 2013-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-26
  • 1970-01-01
  • 2018-07-04
相关资源
最近更新 更多