gpt4 book ai didi

python - 一起使用 django-datatrans 和 django-markitup 时出现 AttributeError

转载 作者:行者123 更新时间:2023-11-28 19:26:47 25 4
gpt4 key购买 nike

我正在尝试使用 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)

当我尝试在管理员中添加一个新的工作对象时,出现以下错误:

'unicode' object has no attribute 'raw'

错误发生在这里,在 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 测试时:

class ModelTests(TestCase):
def test_my_class(self):
self.assertRaises(IntegrityError, models.MyClass.objects.create)

它适用于我:

class ModelTests(TestCase):
def test_my_class(self):
with self.assertRaises(IntegrityError):
models.MyClass.objects.create(info='', info_de='')

我安装的语言是 ende。我的默认语言是 eninfo 是我的标记和翻译领域。 (我在这里测试 MyClass 需要一个字段,因此 IntegrityError。)

(顺便说一句。这会产生一个稍微不同的错误:

class ModelTests(TestCase):
def test_my_class(self):
self.assertRaises(IntegrityError, models.MyClass.objects.create(info=''))

错误:

AttributeError: 'NoneType' object has no attribute 'raw'

)

也许这对某人有帮助。

关于python - 一起使用 django-datatrans 和 django-markitup 时出现 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8835869/

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