gpt4 book ai didi

python - 南值错误: Cannot successfully create field for model: 'module' object has no attribute

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:50 25 4
gpt4 key购买 nike

我有一个使用自定义类作为属性的模型 (/core/models/milestone.py):

from core.models.IntegerRangeField import IntegerRangeField

class milestone(models.Model):
name = models.CharField(max_length=128, null=False, blank=False)
completion = IntegerRangeField(min_value=0,max_value=100, null=False, default=0, blank=True)
due_date = models.DateField(null=False, blank=False)
phase = models.ForeignKey('project_phase',null=False, blank=False)
last_updated_date = models.DateTimeField(null=False, blank=True, default=datetime.now())

def __unicode__(self):
return self.name

(实际上还有更多代码 - full copy here)

它使用的自定义类是这样的:

from django.db import models

class IntegerRangeField(models.IntegerField):
def __init__(self, verbose_name=None, name=None, min_value=None, max_value=None, **kwargs):
self.min_value, self.max_value = min_value, max_value
models.IntegerField.__init__(self, verbose_name, name, **kwargs)
def formfield(self, **kwargs):
defaults = {'min_value': self.min_value, 'max_value':self.max_value}
defaults.update(kwargs)
return super(IntegerRangeField, self).formfield(**defaults)

class Meta:
app_label = 'core'

from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^core\.models\.IntegerRangeField\.IntegerRangeField"])

通过这种布局,我能够运行 django 控制台、导入里程碑并使用它。

但是,当我运行 manage.py schemamigration core --auto 时,出现以下错误:

ValueError:无法为模型“里程碑”成功创建字段“完成”:“模块”对象没有属性“IntegerRangeField”。

没有任何更新。

我觉得它与交叉导入 django.db.models 有关,但不知道如何解决这个问题。

最佳答案

所以,这是我的想法:

代码很好,问题是由我所做的一些重构引起的(自定义字段类最初位于工具模块中,我希望它位于所有其他模型和东西中)。

迁移文件有这个字符串:

('completion', self.gf('core.tools.IntegerRangeField')(default=0, blank=True)),

我认为这在某种程度上让 South 陷入困惑,继续寻找 core.tools.IntegerRangeField 而它已经不在了。

我将 IntegerRangeField 放回 tools.py 中,一切正常。很奇怪。

关于python - 南值错误: Cannot successfully create field for model: 'module' object has no attribute <CustomClassAttributeHere>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9438998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com