Как ограничить доступ к страницам в зависимости от типа пользователя в Django

У меня есть основной вопрос, который может быть полезен для новых разработчиков Django.

Я создал свой собственный UserProfile в Django. Этот UserProfile имеет специальное поле, называемое «тип». Это поле может иметь два значения (до сих пор, может быть, больше в будущем): Мужской - 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. Так что, если у вас есть какие-либо лучшие практики для реализации этого, пожалуйста, сообщите мне (очевидно, я хотел бы, чтобы СУХОЙ код я мог использовать при каждом просмотре!)

Спасибо за помощь.

Ответы на вопрос(4)

Ваш ответ на вопрос