gpt4 book ai didi

python - 创建用户相关信息模型

转载 作者:太空宇宙 更新时间:2023-11-03 20:56:40 25 4
gpt4 key购买 nike

我想创建像 coursera.org 这样的网站。所以我需要创建两个用户类型就像学生和老师一样。最好的方法是什么?

我尝试在 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 设置为某个字段,例如设置 choices [Django-doc]CharField ,例如:

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 设为 OneToOneField [Django-doc]而是避免为同一个 User 创建两个 Usertype

也建议使用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)

关于python - 创建用户相关信息模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55981354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com