Django 1.7+ 相当于 South 的 add_ignored_fields() 是什么?

2024-01-31

回到 Django 的早期版本,我们都使用 South 进行迁移,并且由于它没有我们希望的那么智能,我们有时需要告诉它显式忽略某些字段,因为这些字段太复杂而无法处理。我们这样做是用add_ignored_fields一切都很顺利。

在我们的例子中,我们的模型上有一个“字段”,它是CharField实际上通过以下方法将两个附加字段附加到模型上contribute_to_class方法。这是一个奇怪的过程,但它对于我们的用例来说是有意义的,并且在我们升级到 Django 1.7 之前工作得很好。

然而,随着新的迁移系统,我们使用add_ignored_fields()不再有效,并且我们的单元测试正在爆炸,因为它尝试使用这些字段创建测试数据库表。具体来说,它说:

django.db.utils.OperationalError: duplicate column name: our_column_name

在这种情况下our_column_name是这个特殊的 CharField 子类创建的字段之一。

在完美的世界中,我们可以让迁移代码正确处理这些字段,但我会选择 1.7 版本add_ignored_fields()如果存在的话。

我还应该指出,我们发现的解释deconstruct https://docs.djangoproject.com/en/dev/topics/migrations/#custom-deconstruct-method在 Django 文档中,但恐怕它对我来说没有任何意义。我不知道它是否适用于这种情况。


我们发现这张姜戈门票 https://code.djangoproject.com/ticket/22555这几乎表明这是开发人员不支持的设计模式,因此我们只需重写模型以在模型上显式创建其他字段,然后引用“父”字段中的所述字段阿拉ImageField.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 1.7+ 相当于 South 的 add_ignored_fields() 是什么? 的相关文章

随机推荐