相关疑难解决方法(0)

Django - 如何使用South重命名模型字段?

我想更改模型中特定字段的名称:

class Foo(models.Model):
    name = models.CharField()
    rel  = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

应改为:

class Foo(models.Model):
    full_name     = models.CharField()
    odd_relation  = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

使用南方最简单的方法是什么?

python django django-models django-south

208
推荐指数
5
解决办法
4万
查看次数

使用south来重构具有继承的Django模型

我想知道Django 南部是否可以进行以下迁移并仍保留数据.

之前:

我目前有两个应用程序,一个叫做tv,一个叫做电影,每个都有一个VideoFile模型(这里简化):

电视/ models.py:

class VideoFile(models.Model):
    show = models.ForeignKey(Show, blank=True, null=True)
    name = models.CharField(max_length=1024, blank=True)
    size = models.IntegerField(blank=True, null=True)
    ctime = models.DateTimeField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

电影/ models.py:

class VideoFile(models.Model):
    movie = models.ForeignKey(Movie, blank=True, null=True)
    name = models.CharField(max_length=1024, blank=True)
    size = models.IntegerField(blank=True, null=True)
    ctime = models.DateTimeField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

后:

因为两个videofile对象是如此相似,所以我想摆脱重复并在一个名为media的单独应用程序中创建一个新模型,该应用程序包含一个通用的VideoFile类并使用继承来扩展它:

媒体/ models.py:

class VideoFile(models.Model):
    name = models.CharField(max_length=1024, blank=True)
    size = models.IntegerField(blank=True, null=True)
    ctime = models.DateTimeField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

电视/ models.py:

class VideoFile(media.models.VideoFile):
    show = models.ForeignKey(Show, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

电影/ models.py:

class VideoFile(media.models.VideoFile):
    movie = …
Run Code Online (Sandbox Code Playgroud)

python migration django django-south

32
推荐指数
2
解决办法
8807
查看次数

标签 统计

django ×2

django-south ×2

python ×2

django-models ×1

migration ×1