Django models 在Django模型中反转外键关系会导致问题吗?

Django models 在Django模型中反转外键关系会导致问题吗?,django-models,Django Models,问候:我创建了一个Django应用程序,其中包含一个图像模型作为外键。这允许我将一个图像与多个字符相关联。这是一种1:1的关系,我创造了许多角色和图像,并祝贺自己做得很好,直到我意识到我需要将更多的图像与一个角色相关联,而不是将更多的角色与一个图像相关联。有没有一种最好的方法可以“扭转”这种外键关系,而不丢失我迄今为止所做的所有工作,从头开始 以下是型号代码: class Thumbnail(models.Model): """ A class to represe

问候:我创建了一个Django应用程序,其中包含一个图像模型作为外键。这允许我将一个图像与多个字符相关联。这是一种1:1的关系,我创造了许多角色和图像,并祝贺自己做得很好,直到我意识到我需要将更多的图像与一个角色相关联,而不是将更多的角色与一个图像相关联。有没有一种最好的方法可以“扭转”这种外键关系,而不丢失我迄今为止所做的所有工作,从头开始

以下是型号代码:

class Thumbnail(models.Model):
""" A class to represent image thumbnails."""
name = models.CharField(max_length=40)
profile = models.ImageField(upload_to='images/thumbnails', blank=True)

def __str__(self):
    return self.name


class Image(models.Model):
""" A class to represent images. """
name = models.CharField(max_length=40)
profile = models.ImageField(upload_to='images/', blank=True)
scaleFactor = models.FloatField(default=0.475)
thumbnail = models.ForeignKey(Thumbnail, null=True, on_delete=models.SET_NULL)

def __str__(self):
    return self.name

class Meta:
    ordering = ['name']


class Character(models.Model):
"""A class to define character fields."""

firstName = models.CharField(max_length=20)
lastName = models.CharField(max_length=30, blank=True)
middle = models.CharField(max_length=20, blank=True)
age = models.CharField(max_length=3)
sex = models.CharField(max_length=1, choices=[('M', 'Male'),
                                              ('F', 'Female'),
                                              ])
profession = models.CharField(max_length=100, blank=True)
hobbies = models.CharField(max_length=200, blank=True)
physicalDescription = models.TextField(blank=True)
quirks = models.TextField(blank=True)
background = models.TextField(blank=True)
relationships = models.TextField(blank=True)
quotation = models.TextField(blank=True)
image = models.ForeignKey(Image, null=True, on_delete=models.SET_NULL)
address = models.CharField(max_length=10, unique=True)

def __str__(self):
    if self.lastName:
        return f"{self.firstName} {self.lastName}: {self.address}"
    else:
        return f"{self.firstName}: {self.address}"

class Meta:
    ordering = ['address', 'firstName', 'lastName']

这需要进行数据迁移。你能分享一下相关的型号吗?谢谢你的及时回复。当然,模型类添加在下面。我对迁移很在行,并希望我必须这样做。我只是担心失去我已经添加的角色:图像关系。另一个问题:你使用的是什么Django版本?我使用的是3.0.8版本。