- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
原始问题
我想为 3 种类型的用户创建 3 个用户配置文件。起初,我做了一个 CharFiled
作为标记来区分它们,但后来我意识到我必须放置一些 ForeignKey
来关联这些用户。至于这一步,我不知道如何实现。
具体来说:
AbstractUser
的3类用户,每种用户都可以登录系统AdminstratorA(not a superuser)
AdminstratorB
|--TeacherA
|--TeacherB
|--StudentA
|--StudentB|
以下是我的失败(简化版),使用Django2.1
python3.7
mysite\settings.py
处设置一个 AUTH_USER_MODEL = 'users.UserProfile'
apps\users\model
from django.contrib.auth.models import AbstractUser
from django.db import models
class AdministratorUser(AbstractUser):
pass
class TeacherUser(AbstractUser):
administrator = models.ForeignKey(AdministratorUser, on_delete=models.CASCADE)
class StudentUser(AbstractUser):
teacher = models.ForeignKey(TeacherUser, on_delete=models.CASCADE)
xadmin
设计了我的管理站点,但数据表现不佳。我对此一无所知。所以我尝试重新设计我的模型,这就是我在顶部描述的计划。apps\users\model
from django.contrib.auth.models import AbstractUser
from django.db import models
class UserProfile(AbstractUser):
user_type_choices = (
('student', 'student'),
('teacher', 'teacher'),
('teacher', 'teacher'),
)
identity = models.CharField(choices=user_type_choices, max_length=100, default='student')
class AdministratorUser(models.Model):
user_profile = models.OneToOneField(UserProfile, on_delete=models.CASCADE)
class TeacherUser(models.Model):
user_profile = models.OneToOneField(UserProfile, on_delete=models.CASCADE)
administrator = models.ForeignKey(AdministratorUser, on_delete=models.CASCADE)
class StudentUser(models.Model):
user_profile = models.OneToOneField(UserProfile, on_delete=models.CASCADE)
teacher = models.ForeignKey(TeacherUser, on_delete=models.CASCADE)
最佳答案
这实际上取决于您想要实现的目标,但最简单的方法类似于 is_staff
和is_superuser
标准中的字段User
型号。
class UserProfile(AbstractUser):
is_type1_user = models.BooleanField(default=False)
is_type2_user = models.BooleanField(default=False)
is_type3_user = models.BooleanField(default=False)
关于python - 如何在 Django 中创建继承自 AbstractUser 的多个 UserProfiles?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55850719/
我需要在 java 中添加一个用户配置文件变量,显然 %userprofile% 不起作用。当我尝试将其输入代码底部的目录时,它不接受它。但是我可以在命令行中回显我的 %userprofil% 用户配
我正在尝试将用户字段添加到用户配置文件管理选项卡中,以便能够在一个选项卡中更改每个用户属性。问题是 cmd 返回: 编辑:根据商王的评论编辑了代码,但仍然引发错误: : (admin.E202) 'a
我尝试导入 {{ user.userprofile. }} 和 {{ user.userprofile }} 没有成功。在 django shell 中,我可以使用 UserProfile.objec
我想获取桌面目录文件夹,所以我尝试了: char filename[ MAX_PATH ]; char newLocation[]="%userprofile%\\desktop\\myfil
在我的Yaml电话中,我有 --- title: "`r paste0('Test. Done ', format(Sys.Date(), '%B-%Y'))`" output: word_doc
我需要帮助将当前记录的 %USER% 添加到路径中,这是我目前的代码: DirectoryInfo dir = new DirectoryInfo(@"%USERPROFILE%\Local Sett
我想开始我的程序 start %USERPROFILE%\.myProgramm\myProgramm.exe 但现在我收到一条弹出消息,提示找不到文件夹 C:\Documets。这是由缺少省略号引起
我的代码正确吗?似乎可以编译但不能正常工作.. CString testing = _T(" --url=") + cstring + _T(" --out=%USERPROFILE%\\snapsh
所以我试图将我的文件保存到 C: 驱动器上的文档中。所以它允许我把它给别人,它会保存到他们的文档中。 我阅读了 %USERPROFILE% 的意思是抓取 C:\Users\%USERPROFILE%\
我正在尝试为用户创建一个小应用程序以获取联系人。我使用 django-profiles 作为我的个人资料的基础。现在一切正常,直到我尝试提交编辑联系表单并收到此错误。 Cannot assign ""
所以我用字段 score 扩展了我的用户。像这样: 模型.py: class UserProfile(models.Model): user = models.OneToOneField(Us
在.NET中,我们可以检索“特殊文件夹”的路径,例如文档/桌面等。今天我试图找到一种方法来获取“下载”文件夹的路径,但它看起来不够特别。 我知道我可以只执行“C:\Users\Username\Dow
我想创建一个“更新用户的个人资料”页面来让用户修改他们的个人资料,所以我想出了以下模型: class Profile(models.Model): user = models.OneToOne
我正在试验文件夹重定向,在设置它之后,我很快意识到任何具有环境变量(例如 %UserProfile%)的 VBS 脚本都变得不可用。 例如: C:\MD %UserProfile%\Desktop\
我尝试按照 https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#extending-the-existing-user-mod
我正在尝试运行 .save() 来更改用户模型字段的值。 这是我的代码: View .py: def traffic_task(request): tasks_traffic = Task.o
如果省略\My Documents\,以下函数将起作用,但我需要访问我的文档。 OpenTextFile("test.txt"); function OpenTextFile(file) {
我希望用户只能登录和注销,不能自己编辑他们的个人资料,只有管理员可以注册和编辑用户和他们的个人资料。 # my_app/models.py from django.db import models f
我用这样的用户配置文件扩展 django 用户模型: class UserProfile(BaseModel): user = models.ForeignKey(User, unique=T
我在 Django 中选择数据时遇到一些问题。 models.py class Location(models.Model): user = models.ForeignKey(User, o
我是一名优秀的程序员,十分优秀!