python - 需要外键约束
问题描述
我正在 Django 中创建一个大学管理应用程序。
这是我的模型。文件:accounts/model.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
ROLE = {('student', 'student'),
('staff', 'staff'),
('account_manager', 'account_manager'),
('Admin', 'Admin')}
role = models.CharField(choices=ROLE, default='student',
max_length=20, blank=True, null=True)
我正在为所有用户(员工、学生、HOD 和校长)使用内置用户类。我们可以通过角色来识别用户。
不,我想创建一个课程数据库,其中的 staff_id 将是CustomUser
表的外键。有没有办法选择具有外键角色的用户?
class Course(models.Model):
course = models.CharField(max_length=150)
start_date = models.DateField()
end_date = models.DateField()
instructor = models.ForeignKey(
CustomUser, on_delete=models.CASCADE, related_name='instructor_name')
examinar = models.ForeignKey(
CustomUser, on_delete=models.CASCADE, related_name='examinar_name')
def __str__(self):
return f'{self.course.name} Batch No: {self.batch_no}'
这里都指的是同一个CustomUser
外键。这就是我添加相关名称的原因。(这是正确的方法吗?)
但是在管理页面上,如果我想添加一门新课程,我会获得所有用户。像这样:
] 1
我只想在角色是员工时才显示用户。可能吗?
解决方案
推荐阅读
- c++ - 带有 reinterpret_cast 的向量
- javascript - Include JavaScript inside Material-UI tags
- javascript - Ajax 调用后刷新页面
- angular - Angular 7环境变量字符串文字预期
- java - 阴影/重新打包的 jar 作为依赖项
- angular - 为 Angular 组件动态加载外部 Javascript 并触发 window.load
- google-colaboratory - 在使用 swift 或 swift 进行 tensorflow 时,colab notebook 中是否提供快速帮助?
- android - 将录制的音频作为麦克风输入发送到 Gboard
- javascript - 如何让孩子进入 Firebase 上的父子内部?
- java - Javafx 标签不显示在窗口中