gpt4 book ai didi

python - South 不认识我的模型

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

我有以下名为 UnixTimestampField 的类:

from django.db import models
from datetime import datetime
from time import strftime

class UnixTimestampField(models.DateTimeField):
op_params=''
def __init__(self, null=False, blank=False, op_params='', **kwargs):
super(UnixTimestampField, self).__init__(**kwargs)
self.blank, self.isnull = blank, null
self.null = True

def db_type(self, connection):
typ=['TIMESTAMP']
# See above!
if self.isnull:
typ += ['NULL']
if self.op_params != '':
typ += [self.op_params]
return ' '.join(typ)

def to_python(self, value):
return datetime.from_timestamp(value)

def get_db_prep_value(self, value, connection, prepared=False):
if value==None:
return None
return strftime('%Y%m%d%H%M%S',value.timetuple())

def to_python(self, value):
return value

from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^web\customfields\.unixtimestampfield\.UnixTimestampField"])

每次运行以下命令:python manage.py schemamigration web --initial,我不断收到:

! (该字段具有类 web.customfields.unixtimestampfield.UnixTimestampField)

我有什么遗漏的吗?它似乎根本不认识这个领域的存在?我正在阅读以下位置的文档:

http://south.readthedocs.org/en/latest/customfields.html#extending-introspection

http://south.readthedocs.org/en/latest/tutorial/part4.html#keyword-arguments

[解决方案]

这个错误很简单。

以下行:^web\customfields\.unixtimestampfield\.UnixTimestampField 不正确。

已更改为:^web\.customfields\.unixtimestampfield\.UnixTimestampField

最佳答案

这太破烂了。但是您可以将模型中的 UnixTimestampField 更改为 DateTimeField。执行这个:

python manage.py schemamigration web --initial

在您再次将 DateTimeField 更改为 UnixTimestampField 后

这必须有效......但这是肮脏的解决方案

尽管您的代码中可能有错误,但请更改此:

add_introspection_rules([], ["^web\customfields\.unixtimestampfield\.UnixTimestampField"])

为此:

add_introspection_rules([], ["^web\.customfields\.unixtimestampfield\.UnixTimestampField"])

关于python - South 不认识我的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11869504/

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