【问题标题】:South Data Migration in DjangoDjango中的南方数据迁移
【发布时间】:2015-01-19 22:25:51
【问题描述】:

我想从数据字段中排除链接。 就像,我有一个名为“Profile”的模型。在模型中,有一个名为“facebook”的字段。在该字段中,数据保存为“https://www.facebook.com/user_name”。我想排除“https://www.facebook.com/”并只保留“user_name”数据。 那么我如何通过南迁来做到这一点呢?

我已经使用 ./manage.py datamigration 进行了数据迁移,并且在该迁移中我进行了如下更改 类迁移(DataMigration):

def forwards(self, orm):
    "Write your forwards methods here."
    orm.Profile.objects.exclude(facebook='https://www.facebook.com/').update(facebook='')

def backwards(self, orm):
    "Write your backwards methods here."
    raise RuntimeError('Cannot reverse this migration.')    

但是,它似乎删除了该字段的所有数据。 那么我应该怎么做才能只保留“user_name”并排除“https://www.facebook.com/”数据?

问候

【问题讨论】:

    标签: python django database-migration django-south data-migration


    【解决方案1】:

    这不完全是 South 的用途......但如果这是您需要处理的方式,我很确定您可以执行以下操作(但先在副本上进行测试):

    def forwards(self, orm):
        for profile in orm.Profile.objects.all():
            profile.facebook = profile.facebook.split('/')[-1]
            profile.save()
    

    【讨论】:

      猜你喜欢
      • 2014-07-30
      • 2014-10-28
      • 2011-04-03
      • 2012-11-21
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 2014-06-22
      相关资源
      最近更新 更多