有没有办法在进行数据库转储时从不同的表中排除字段。我只能完全排除模型。 (我正在使用postgresql)。任何帮助表示赞赏.. 提前谢谢..
答案 0 :(得分:0)
不容易。我会从Django源获取dumpdata.py的副本并将其放入您的项目并进行自定义。将它扩展为使用自定义管理器进行转储或扩展排除以支持app.model.field都不会太难。
这听起来像是一个普遍有用的扩展。
答案 1 :(得分:0)
一个可能的技巧是定义一个包含字段子集的新模型,并在managed=False
中设置db_table
并覆盖Meta
字段。
也可以避免通过常见的抽象父模型重复定义公共字段。
class CommonBase(models.Model):
class Meta:
abstract = True
class ModelX(CommonBase):
pass
class SubsmetOfModelX(CommonBase):
class Meta:
managed = False
db_table = 'app_label_modelx'
这种方法的缺点可能是:
dumpdata
期间排除至少一个上述两个模型,否则dumpdata
将包含重复的对象。loaddata
上的任何SubsetOfModelX
字段不在子集模型上,则null=False
ModelX
会失败。