我有一個基本的問題,可以用於新的Django開發人員。如何在Django中根據用戶類型限制對頁面的訪問
我在Django中創建了自己的UserProfile。這個UserProfile有一個叫'type'的特定字段。該字段有兩個值(到現在爲止,也許在未來更多):男 - M /女 - F:
from django.contrib.auth.models import User
GENDER = (
(M, 'Male'),
(F, 'Female'),
)
class UserProfile(models.Model):
user = models.OneToOneField(User)
type = models.CharField(max_length=2,
choices=GENDER,
default='F')
基本上,我想允許訪問限制訪問或根據用戶類型,以適應頁面內容。到現在爲止,我用了一個很基本的和初學者的做法,是爲了測試用戶類型,然後再處理頁面:
def OnePage(request):
if request.user.type == 'M':
....
else if request.user.type =='F':
....
然後,我還需要適應不同用戶類型提供的模板:男性用戶將不會有與女性用戶相同的個人資料頁面。
我相信有更好的方法來做到這一點,但作爲一個Django初學者,我完全喪失了Django的所有可能性。所以,如果你有任何最佳實踐來實現這一點,請告訴我(很明顯,我想我可以在每個視圖上使用DRY代碼!)
感謝您的幫助。
你是什麼意思的中間件? –
[在文檔中](https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs) –