小编Jef*_*rne的帖子

使用Django和django-guardian对象权限对每个对象进行分组

我目前正在创建一个我拥有属于公司的员工的结构.在这家公司内,我需要能够创建几个组.排名如果你愿意.您可以为较低级别分配较少的权限,为较高级别分配较多权限.

我想去对象级权限,我注意到django-guardian项目给了我正确的我需要的东西.它适用于本机用户和组对象,因此我现在正在尝试找到一种在公司对象中实现本机组对象的方法.

我面临的问题是组中的名称是唯一的.因此,如果2家公司添加相同的组,则会发生错误.

我找到了一种在某种程度上有效的实现,但对我来说似乎相当'hacky'.在我的公司,我声明了一个引用Group的组变量:

class Company(models.Model):
    ...
    groups = models.ManyToManyField(Group, through='CompanyRole')
Run Code Online (Sandbox Code Playgroud)

CompanyRole基本上包含组名和对公司和组的引用

class CompanyRole(models.Model):
    group = models.ForeignKey(Group)
    company = models.ForeignKey(Company)
    real_name = models.CharField(max_length=60, verbose_name=_('Real name'))

    objects = CompanyGroupManager()
Run Code Online (Sandbox Code Playgroud)

我用一种方便的方法创建了一个自定义管理器来添加一个新的"公司组"

class CompanyGroupManager(models.Manager):
    def create_group(self, company, group_name):
        un_group_name = str(company.id) + '#' + group_name
        group = Group.objects.create(name=un_group_name)
        company_group = self.model(
            real_name=group_name, 
            company=company, 
            group=group
        )

        company_group.save(using=self._db)
        return company_group
Run Code Online (Sandbox Code Playgroud)

这是我真的觉得不舒服的部分.为了使用Group模型上的唯一名称更改问题,我使用了公司ID,哈希符号和实际组名称的组合来避免冲突.

现在我的问题是:在我的场景中是否有更好的方法,我错过了什么或者这是完成我需要的好方法吗?

django django-models django-guardian

12
推荐指数
1
解决办法
1231
查看次数

'支架初始化'.(C++)

我正在学习C++,C++ Primer plus.但我只是想看看cplusplus网站并跳过一点文件处理.

我非常了解来自java,php,visual basic的文件处理的基础知识.但我遇到了一个非常奇怪的路线.

ostream os(&fb);
Run Code Online (Sandbox Code Playgroud)

fb代表一个filebuf.我只是没有得到这个的语法,但我可以弄清楚它是一样的:

ostream os = &fb;
Run Code Online (Sandbox Code Playgroud)

但我从未真正了解过这种初始化变量的方法.

所以我很想知道.我只是毫无意义,错过了一个真正有用的功能吗?这种初始化方式只是旧的吗?它有什么不同吗?

提前致谢.

c++ initializing

5
推荐指数
3
解决办法
3146
查看次数

Nodejs cron 插件与从 crontab 运行 nodejs 脚本

我正在构建一个工具,用户可以在其中输入他们感兴趣的一些项目。每 24 小时我想运行一个脚本来检查来自外部源的某些 JSON 响应以获取这些主题。

我的问题是:为什么要制作脚本并使用 crontab 运行它,而不是使用node-cron插件制作模块并将其包含在 app.js 文件中。或者你永远不会这样做?

基本上想在这方面进行最佳实践。

module crontab node.js

5
推荐指数
1
解决办法
2216
查看次数

java中的指针实际存在吗?

我觉得我在java方面很有经验,但似乎事实并非如此,我昨天注意到了一些事情,我以前用过的东西,但从未真正意识到它的作用.我用谷歌搜索,但没有找到我的问题的答案.

如果我声明一个int数组,并使用Array的静态排序函数来对我的数组进行排序,我只需要输入

Arrays.sort( numbers );
Run Code Online (Sandbox Code Playgroud)

代替

numbers = Array.sort( numbers );
Run Code Online (Sandbox Code Playgroud)

这在C和C++中看起来很容易,因为你可以在那里使用指针.所以我想知道的是,这是怎么做到的?这是阳光的优势,还是我在这里完全没有意义?

java pointers reference

2
推荐指数
2
解决办法
1305
查看次数