Python 影响在多个角色模型之间迁移到一个模型整型字段
以前我使用三个模型,分别是User(来自AbstractBaseUser)、Teacher和Student 学生可以创建一个请求,教师可以要求对该请求负责。如果学生接受了,那么老师将成为该请求的负责人 这是请求表的外观:Python 影响在多个角色模型之间迁移到一个模型整型字段,python,django,django-models,Python,Django,Django Models,以前我使用三个模型,分别是User(来自AbstractBaseUser)、Teacher和Student 学生可以创建一个请求,教师可以要求对该请求负责。如果学生接受了,那么老师将成为该请求的负责人 这是请求表的外观: class Request(models.Model): request_id = models.CharField(db_column='requestId', primary_key=True, max_length=36) date_created = m
class Request(models.Model):
request_id = models.CharField(db_column='requestId', primary_key=True, max_length=36)
date_created = models.DateField(db_column='dateCreated')
title = models.CharField(max_length=30)
request_description = models.CharField(db_column='requestDescription', max_length=280, blank=True, null=True)
expiration_date = models.DateField(db_column='expirationDate', blank=True, null=True)
done = models.IntegerField(blank=True, null=True)
student_id = models.ForeignKey(Student, models.DO_NOTHING, db_column='studentId')
teacher_id = models.ForeignKey(Teacher, models.DO_NOTHING, db_column='teacherId', blank=True, null=True)
如您所见,学生和教师模型分别有带ForeignKey的student\u id和teacher\u id
现在,我只使用一个模型来表示用户、教师和学生,称为MyUser。在这个模型中,得到了一个字段
user_type = models.IntegerField(db_column='userType')
其中0是具有更多权限的MyUser,255是未指定的MyUser
请求中的FKs现在会发生什么情况?另外,如何通过该字段处理教师和学生?您必须按照以下多个步骤迁移您的
请求
模型:
MyUser
Request.student
字段不可为空将是什么,
MyUser.USER\u-TYPE\u-STUDENT
和MyUser.USER\u-TYPE\u-TEACHER
?您可以将它们替换为确定用户是学生还是教师的USER\u-TYPE
的任何值
class Request(models.Model):
student_id = models.ForeignKey(Student, models.DO_NOTHING, db_column='studentId')
teacher_id = models.ForeignKey(Teacher, models.DO_NOTHING, db_column='teacherId', blank=True, null=True)
# new fields
student = models.ForeignKey(MyUser, null=True, related_name='requests', limit_choices_to={'user_type': MyUser.USER_TYPE_STUDENT}, ...)
teacher = models.ForeignKey(MyUser, null=True, related_name='student_requests', limit_choices_to={'user_type': MyUser.USER_TYPE_TEACHER}, ...)