2011-06-11 6 views
0

django-users와 다른 테이블을 외래 키로 사용하는 권한 테이블을 만들고 싶습니다. 그런 다음 권한을 부여합니다. models.py에는 무엇이 있어야합니까? Django에서 사용자 권한과 별도로 권한 테이블을 만드는 방법은 무엇입니까?

의혹

는 두 개의 질문으로 가로 질러 넣어 수 있습니다 : 다른 응용 프로그램에서 외래 키로 장고 사용자 (사용자 ID)를 사용하는 방법

  1. 는 권한을했다.
  2. 는 syncdb는

해당 테이블 (다른 응용 프로그램)의 priamry 키로 수행 때, 장고에 의해 생성되는이 응용 프로그램 권한의 외래 키로 사용되는 테이블 ID를 사용하는 방법.

답변

0

User Profile - 프로필 모델에 원하는 키가 포함 된 사용자 모델에 연결할 수있는 모델을 만드는 것이 가장 좋습니다. 그런 다음 User.get_profile()을 호출하고 모델 객체를 가져 와서 가지고있는 키를 확인할 수 있습니다.

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() 
+0

한번 이상한 정수 값을주는 외래 키를 가지고 있습니다. 외래 키를 사용하여 기본 키인 테이블을 참조하려면 어떻게해야합니까? – Hick

+0

내가 링크 된 콘텐츠 유형 문서를 읽어야합니다. – Hutch

1

당신이 django.contrib.auth에 권한 기능을 사용할 수 없습니다 이유가 있습니까? Meta 개체와 Groups 테이블의 permissions 기능을 사용하면 "그룹 X의 사용자가 작업 Y를 수행 할 수 있습니다"라는 행렬을 쉽게 만들 수 있습니다.

이 문제에 대해 더 생각해 보면 구현이 추가 혜택없이 그룹/권한 기능을 반영한 것으로 보입니다.

자세한 내용은 https://docs.djangoproject.com/en/1.3/topics/auth/을 참조하십시오.

+0

이것이 일어날 수있는 문제를 확인하십시오. 나는 사용자 측면에서가 아니라 파일 업로드 측면에서 권한을 부여합니다. 사용자가 파일을 업로드하면 특정 사용자 만 파일을 보거나 수정할 수 있습니다. 사용자가 제공 한이 권한으로 인해 파일 관점이 아닌 사용자 관점에서만이를 수행 할 수 있다고 생각합니다. – Hick

관련 문제