python - Django 中的用户类型模型
问题描述
我对如何插入用户类型感到困惑,我只是 Django 的初学者,但我肯定一直在阅读 Django 中的文档,但我无法理解这个,情况是当我注册新用户时,必须有选择应该与该用户指定的用户类型是管理员还是等,但问题是我认为即使我创建了另一个 table.slight 也没有来自 authuser 的关系表。类似于这个问题资源链接。现在我一直在考虑在 authuser 表中创建自定义用户类型字段,但是在迁移时它没有显示更新的字段并且也喜欢这个问题,有些人或用户没有在 authuser 表示例中触摸或添加任何字段是否可以在 auth_permission 或其他默认表中插入用户类型?我真的很困惑我可以在哪里添加与 authuser 有关系的用户类型。有知道的或者解释一下吗,谢谢
楷模
class AuthUser(models.Model):
password = models.CharField(max_length=128)
last_login = models.DateTimeField(blank=True, null=True)
is_superuser = models.IntegerField()
username = models.CharField(unique=True, max_length=150)
first_name = models.CharField(max_length=150)
last_name = models.CharField(max_length=150)
email = models.CharField(max_length=254)
is_staff = models.IntegerField()
is_active = models.IntegerField()
date_joined = models.DateTimeField()
usertype_id = usertype = models.OneToOneField(usertypes,on_delete=models.CASCADE,primary_key=True)
() //this is what i want to add
class Meta:
managed = False
db_table = 'auth_user'
class usertypes(models.Model):
usertype = models.CharField(max_length=264)
description = models.CharField(max_length=264)
status = models.CharField(max_length=264)
解决方案
有多种方法可以做到这一点。我推荐的方式是扩展现有的用户模型。
from django.contrib.auth.models import User
class UserType(models.Model):
user_type = models.CharField(max_length=264)
description = models.CharField(max_length=264)
status = models.CharField(max_length=264)
class AppUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
type = models.ForeignKey(UserType, on_delete=models.CASCADE)
这将创建 2 个额外的表。
- user_type 您将在其中拥有您可能想要填写的 UserType 和
- app_user 将在哪里存储 django 用户记录及其类型的引用
但是,我认为您应该有充分的理由这样做。Django 允许您将用户分组到用户组中,这正是您想要的。
推荐阅读
- wordpress - Wordpress 智能滑块插件不起作用
- reactjs - React Hooks:useState with onClick 仅在第二次单击按钮后更新?
- python - Python使用关键字提取html网页内容
- android - RecyclerView 滚动慢 - setHasStableIds 不起作用,可以预加载多个屏幕外视图?
- sql - 自定义运行和查询
- ios - Pod 安装 Firebase/Analytics 失败
- java - 从 .eml 文件中获取文本的最佳方法是什么?
- android - 如何让我的列表视图在新的活动类中工作
- html - 为什么div在另一个div里面?
- ios - Swift Collection 视图水平和垂直滚动