新しい Django 開発者に役立つ基本的な質問があります。
Django で独自の UserProfile を作成しました。この UserProfile には、「タイプ」と呼ばれる特定のフィールドがあります。このフィールドは 2 つの値を持つことができます (今までは、将来的にはさらに増える可能性があります): 男性 - 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 コードが必要です!)
ご協力ありがとうございました。