Вам нужно сделать usertype
определенным полем, например CharField
, где вы установите choices
[Django-doc] , например:
from django.db import models
from django.contrib.auth.models import User
<b>USERTYPE_CHOICES</b> = (
('S', 'Student'),
('T', 'Teacher')
)
class Usertype(models.Model):
user = models.ForeignKey(User,related_name = 'Usertype')
<b>usertype = models.CharField(max_length=1, choices=USERTYPE_CHOICES)</b>
Обратите внимание, что вы, вероятно, захотите сделать ForeignKey
a OneToOneField
[Django-doc] вместо того, чтобы избежать создания двух Usertype
s для одного и того же User
.
Желательно также использовать get_user_model
[Django-doc] вместо прямой ссылки на модель User
, поскольку это делает изменение пользовательской модели более удобным, как:
from django.db import models
from django.contrib.auth import <b>get_user_model</b>
USERTYPE_CHOICES = (
('S', 'Student'),
('T', 'Teacher')
)
class Usertype(models.Model):
user = models.<b>OneToOneField</b>(<b>get_user_model()</b>, 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)