我从django 1.8迁移到1.9.我收到以下错误:
ImportError:无法导入名称'FileWrapper'
我导入如下:
from django.core.servers.basehttp import FileWrapper
Run Code Online (Sandbox Code Playgroud)
在django 1.9发行说明中搜索此名称不会产生任何结果.有什么替代品FileWrapper?
该命令python manage.py makemigrations大部分时间都会失败,因为forms.py在类定义级别引用了新模型或新字段.
因此,我必须对迁移的每个此类定义进行评论.这是一项痛苦的任务.
我不明白为什么迁移过程会导入forms.py模块.我认为导入模型模块应该足够了.
有没有办法避免这些错误?
我得到这个例外:
django.core.exceptions.FieldError:
"SpecialPlugin"类中的本地字段"ticket"与基类"BasePlugin"中类似名称的字段发生冲突
这是我的模特:
class BasePlugin(models.Model):
ticket = models.OneToOneField('foobar.ticket', primary_key=True,
related_name='%(app_label)s_%(class)s')
class Meta(IndexImplementation.Meta):
abstract = True
# .. Other stuff which should be available for SpecialPlugin
# and other child classes.
class SpecialPlugin(BasePlugin):
ticket = models.OneToOneField('foobar.ticket', primary_key=True,
related_name='special')
Run Code Online (Sandbox Code Playgroud)
我只发现了这个注释,但在我的例子中,父类是抽象的.我不确定它是否适用于此.
我想给子类提供SpecialPlugin相关的名称"special",因为%(app_label)s_%(class)sBasePlugin 的相关name()会破坏旧代码.
有没有办法给SpecialPlugin.ticket相关的"特殊"?
我在模型中添加自定义字段,这些字段需要按照模型中定义的顺序创建。在 Django 迁移创建的文件中,不遵守此顺序。有没有办法告诉 Django makemigrations 操作的顺序?我使用 Django 1.8 和 MySQL 5.7。
我开始使用django-channels,我觉得它很棒。然而调试消费者是痛苦的,因为当从消费者内部引发一些异常时,终端不会打印任何内容,websocket 只是断开连接。
未显示的异常类型不易识别。对于AssertionError,以及其他一些系统,情况就是如此,例如下面的代码:
class MexicoProgressConsumer(ProgressConsumer):
def init(self, SSDBConfig, Sub_application):
subappli = models.Sub_application.objects.get(pk=Sub_application)
...
Run Code Online (Sandbox Code Playgroud)
使用错误数量的参数调用此方法不会在控制台上打印任何内容并断开 websocket。如果get最后一行失败,同上。
有没有办法像其他任何例外一样看待这些例外?