Django 1.5의 새로운 구성 가능한 사용자 모델을 사용하여이를 수행 할 수 있습니다. 설명서 here을 검토 할 수 있습니다.
일반적인 아이디어를 제공하기 위해 사용자 모델을 AbstractUser
으로 확장하고 추가 필드를 추가하여 의사와 환자 간의 연결 관계를 만듭니다. 환자가 의사를 한 명만 가질 수 있고 의사가 많은 환자를 가질 수있는 경우 ForeignKey 관계를 사용하거나 환자가 많은 의사를 가질 수있는 경우 Many to Many 관계를 사용합니다.
def user_relation(request, owner):
if (request.user.email == owner.email) or (request.user.email == owner.token):
return True
: 당신과 같은 유틸리티 기능을 구현할 수있는 뷰에서 다음
def UserRegistration(request):
if request.method == 'POST':
form = UserCreateForm(request.POST)
if form.is_valid():
data = request.POST.copy()
# if user that is registering is a doctor, token is their own email. otherwise their token is their doctor's email and
# their relation is their doctor
if data.__getitem__('user_type') == '1':
data.__setitem__('token', data.__getitem__('email'))
else:
doctor = PHRUser.objects.get(email=data.__getitem__('token'))
data.__setitem__('phr_relate', staker.id)
data.__setitem__('token', '')
new_user = form.save(data)
return HttpResponseRedirect('/')
:
이
class PHRUser(AbstractUser):
phr_relate = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True)
token = models.EmailField(null=True, blank=True)
USER_CHOICES = (
('1', 'Doctor'),
('2', 'Patient')
)
user_type = models.CharField(choices=USER_CHOICES, max_length=10)
그런 다음 등록 당신이 뭔가를 구현할 수 있습니다 내 아래 예제는 외래 키를 사용
레코드 소유자의 사용자 개체를 owner
으로 전달하면 함수는 다음과 같이됩니다.
로그인 한 사용자 경우 로그인 한 사용자가 환자의 경우
- 반환은 True입니다 그들의 권한이 부여 된 환자를 보려고하고 의사는
- 반환 진정한 기록하고 그들은 자신의 기록
- 돌아 보려고 틀린 경우
이 기능을 사용하여보기에서이 요청에 대해 표시해야 할 내용을 확인할 수 있습니다.
구현을 위해이 권리를 얻기 위해 약간의 조정이 필요할 수 있지만, 시작해야합니다.