我试图使用django-datatrans来翻译模型上的MarkupField
(来自django-markitup)。两个应用程序都能独立正常工作,但是当我注册datatrans来翻译MarkupField
时,我就不能再在管理中添加对象了。在
相关代码:
from django.db import models
from markitup.fields import MarkupField
from datatrans.utils import register
class Work(models.Model):
title = models.CharField(max_length=500)
content = MarkupField(help_text=MARKDOWN_HELP)
class WorkTranslation(object):
fields = ('title', 'content')
register(Work, WorkTranslation)
当我尝试在管理中添加新的工作对象时,我收到以下错误:
^{pr2}$错误发生在markitup模块中(在rendered = render_func(value.raw)
行中):
.../lib/python2.7/site-packages/markitup/fields.py in pre_save
def pre_save(self, model_instance, add):
value = super(MarkupField, self).pre_save(model_instance, add)
rendered = render_func(value.raw)
setattr(model_instance, _rendered_field_name(self.attname), rendered)
return value.raw
失败时的本地变量:
add: False
model_instance: <Work: This is the title>
value: u'This is the content.'
self: <markitup.fields.MarkupField: content>
当Work
类没有注册进行翻译时,我试图检查变量value
。在这种情况下(然后它确实工作正常),它不是unicode字符串,而是markitup.fields.Markup
的实例。在
我不知道为什么类型会改变,我意识到这个问题相当具体。但我希望有人能洞悉一切。。在
在测试时,django-modeltranslation和django markitup有相同的问题:
它适用于我:
^{pr2}$其中我安装的语言是
en
和de
。我的默认语言是en
。info
是我的领域,有标记和翻译。(我在这里测试MyClass
上需要一个字段,因此IntegrityError
。)(顺便说一句,这会产生稍微不同的错误:
错误:
)
也许这对某人有帮助。在
相关问题 更多 >
编程相关推荐