我想创建一个权限表,它将django-users和另一个表作为其外键。然后赋予它权限。 models.py中应该有什么?
怀疑可以作为两个单独的问题加以说明:
- 如何在另一个名为的app中使用django-users(用户id)作为外键 权限。
- 如何使用syncdb时由django生成的table-id 作为
的priamry键完成 醇>
该表(不同的应用程序),用作此应用程序权限的外键。
答案 0 :(得分:1)
是否有理由不能使用django.contrib.auth中的权限功能?通过使用permissions
对象和Meta
表的Groups
功能,您可以轻松创建“X组中的用户可以执行操作Y”的矩阵。
我越是想到这一点,您的实现似乎就越能反映群组/权限功能而没有额外的好处。
有关详细信息,请参阅https://docs.djangoproject.com/en/1.3/topics/auth/。
答案 1 :(得分:0)
您最好的方法是创建一个User Profile - 这是一个可以链接到User模型的模型,其中Profile模型包含您想要的任何键。然后你可以调用User.get_profile(),获取一个模型对象,检查它有哪些键。
答案 2 :(得分: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()