coursera.orgのようなウェブサイトを作りたいです。したがって、学生と教師のような2つのユーザータイプを作成する必要があります。それを行うための最良の方法は何ですか?
手動でユーザータイプを作成し、models.pyでユーザータイプを事前定義しようとしました。ただし、ユーザータイプは管理ページに表示されません。何が間違っているのですか?
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Usertype(models.Model):
user = models.ForeignKey(User,related_name = 'Usertype')
usertype = ('Student','Teacher')
usertype
たとえばCharField
、choices
[Django-doc]を設定する場所など、特定のフィールドを作成する必要があります。
from django.db import models
from django.contrib.auth.models import User
USERTYPE_CHOICES = (
('S', 'Student'),
('T', 'Teacher')
)
class Usertype(models.Model):
user = models.ForeignKey(User,related_name = 'Usertype')
usertype = models.CharField(max_length=1, choices=USERTYPE_CHOICES)
あなたはおそらくしたいことを注意ForeignKey
A OneToOneField
[ジャンゴ-DOC]を2作成しないようにする代わりに、Usertype
同じのための秒User
。
また、モデルを直接参照する代わりにget_user_model
[Django-doc]を使用することをお勧めします。User
これにより、次のようにユーザーモデルの変更がより便利になります。
from django.db import models
from django.contrib.auth import get_user_model
USERTYPE_CHOICES = (
('S', 'Student'),
('T', 'Teacher')
)
class Usertype(models.Model):
user = models.OneToOneField(get_user_model(), related_name='Usertype')
usertype = models.CharField(max_length=1, choices=USERTYPE_CHOICES)
ではapp/admin.py
、管理サイトに表示されるようにモデルを「登録」する必要もあります。
# app/admin.py
from django.contrib import admin
from app.models import Usertype
admin.site.register(Usertype)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加