4. Mai 2019
Sie brauchen, um machen usertype
ein bestimmtes Gebiet, zum Beispiel ein CharField
, wo Sie die choices
[Django-doc], wie:
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)
Beachten Sie, dass Sie wahrscheinlich wollen, um die ForeignKey
a OneToOneField
[Django-doc] statt um zu vermeiden das zwei Usertype
s für die gleichen User
.
Es ist auch ratsam, get_user_model
[Django-doc] statt auf die User
Modell direkt, da macht das ändern der Benutzer-Modell, mehr bequem, wie:
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)
In app/admin.py
, müssen Sie auch auf "registrieren" Ihr Modell so, dass es zeigt sich in der admin-Seite:
# app/admin.py
from django.contrib import admin
from app.models import Usertype
admin.site.register(Usertype)