假设在数据库“table”中有一个表,不是Django创建的。是否可以以任何方式将其指定为外键?
class Object(models.Model): object_id = models.IntegerField(unique=True) param = models.ForeignKey('table', on_delete= models.DO_NOTHING) ...
nle07wnf1#
在Django模型上有一个 meta选项来指定表存在但不受Django管理:https://docs.djangoproject.com/en/4.2/ref/models/options/#managedDjango也可以通过使用inspectdb manage命令指向表来构建模型类:https://docs.djangoproject.com/en/4.2/howto/legacy-databases/所以实际上你会有:
class Object(models.Model): unmanaged_fk = models.ForeignKey('UnmanagedObject', blank=True, null=True, on_delete=models.SET_NULL) class UnmanagedObject(models.Model): some_field = models.CharField(max_length=200) ... ... class Meta: managed=False db_table = 'Name_Of_My_Database_Table'
1条答案
按热度按时间nle07wnf1#
在Django模型上有一个 meta选项来指定表存在但不受Django管理:
https://docs.djangoproject.com/en/4.2/ref/models/options/#managed
Django也可以通过使用inspectdb manage命令指向表来构建模型类:
https://docs.djangoproject.com/en/4.2/howto/legacy-databases/
所以实际上你会有: