Luc*_*s B 6 python django default model foreign-keys
我正在尝试执行以下操作,但在文档或 stackoverflow 上找不到好的解决方案。
我有一个现有的数据库,其中约有 1000 个用户使用此模型:
class Student(AbstractBaseUser):
email = models.EmailField(verbose_name='email address', max_length=255, unique=True)
school = models.CharField(max_length=255,null=True, blank=True)
...
Run Code Online (Sandbox Code Playgroud)
但我最终决定使用单独的模型来处理学校:
class Student(AbstractBaseUser):
email = models.EmailField(verbose_name='email address', max_length=255, unique=True)
school = models.ForeignKey('School')
class School(models.Model):
name = models.CharField(max_length=255,unique=True)
Run Code Online (Sandbox Code Playgroud)
我如何处理所有现有的学生,知道对于未来的学生,我将直接在订阅表格中询问学校外键?
如果您想使用 ORM 实时执行此操作,您可以将该Student.school字段重命名为Student.school_old,然后添加Student.school外键,并使用以下代码片段来确保数据正常:
for student in Student.objects.filter(school__isnull=False):
try:
school = School.objects.get(name=student.school_old)
except School.DoesNotExist:
school = School.objects.create(name=student.school_old)
student.school = school
student.save()
Run Code Online (Sandbox Code Playgroud)