用于系统页面访问的django数据模型

时间:2016-02-01 13:52:18

标签: django django-models

我是django的新手,并建立了一个小项目,我有用户,用户属于组和页面。

现在,我想在用户登录系统和他访问的每个页面时记录。

我还希望能够根据他所属的群组或根据他的身份证明他访问这些页面。

到目前为止,我已经编写了以下代码,并且我坚持为他提供基于组/ ID的访问权限。

class userProfile(models.Model):
        user            = models.OneToOneField(User, related_name="profile")
        uniID           = models.CharField(max_length=6)

class systemEntry(models.Model):
        user    = models.ManyToMany(userProfile)
        time    = models.DateTimeField(auto_now=True)

class pageProfile(models.Model):
        url     = models.URLField()
        name    = models.CharField(max_length=30)
        parent  = models.CharField(max_length=30)
        createdOn= models.DateTimeField(auto_now=True)
        access ??

class pageVisit(models.Model):
        user    = models.ManyToMany(userProfile)
        page    = models.ManyToMany(pageProfile)
        time    = models.DateTimeField(auto_now=True)

我在考虑两种可能的方式:

1)创建其他2个类。第一个groupPageAccess和IDpageAccess。不知道如何匹配userID和groupID

2)他们应该是在pageProfile中做到这一点的方法。但也不知道如何

我感谢对上述代码的任何批评,并且有助于了解如何考虑编写模型。

1 个答案:

答案 0 :(得分:0)

在授权方面,我个人使用django-guardian 它允许您自动执行每用户授权过程。

我认为我不必给你举例,因为文档非常好: https://django-guardian.readthedocs.org/en/stable/userguide/index.html

在日志记录方面,它在django docs中有详细描述: https://docs.djangoproject.com/en/1.9/topics/logging/