我有一个基本的问题,可以用于新的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) –