0

我想创建一个以 django-users 和另一个表作为其外键的权限表。然后给它权限。models.py 中应该有什么?

这个疑问可以作为两个单独的问题来表达:

  1. 如何在另一个名为 permissions 的应用程序中使用 django-users(用户 ID)作为外键。
  2. 当syncdb完成时如何使用django生成的table-id作为primary key

该表(不同的应用程序),用作此应用程序权限的外键。

4

3 回答 3

1

您是否有理由不能使用 django.contrib.auth 中的权限功能?通过使用 对象和表格的permissions特性,您可以轻松地创建一个“组 X 中的用户可能执行操作 Y”的矩阵。 MetaGroups

我对此想得越多,您的实现似乎就越会反映组/权限功能而没有额外的好处。

有关详细信息,请参阅https://docs.djangoproject.com/en/1.3/topics/auth/

于 2011-06-11T17:42:49.993 回答
0

最好的办法是创建一个用户配置文件- 这是一个可以链接到用户模型的模型,其中配置文件模型包含您想要的任何键。然后你可以调用User.get_profile(),得到一个模型对象,检查它有什么键。

于 2011-06-11T17:28:58.287 回答
0

对于模型,您需要查看 .contrib 中的 ContentTypes 应用程序。(https://docs.djangoproject.com/en/1.3/ref/contrib/contenttypes/),您可以为用户创建一个外键。

from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType

class Permission(models.Model):
    user = models.ForeignKey(User)
    table = models.ForeignKey(ContentType)
    ### the rest of the model.

然后在你看来或其他什么:

perm = Permission()
perm.user = request.user
perm.table = ContentType.objects.get_for_model(TableToAddPermissionFor)
perm.save()
于 2011-06-11T17:42:09.833 回答