Django-从ModelForm字段标签获取字符串

Django-从ModelForm字段标签获取字符串,django,django-forms,Django,Django Forms,我有以下内容:我想向我的ModelForm字段标签添加一个字符串。我想在形式课上做 我这样做: class MyForm(ModelForm): class Meta(): model = MyEntity def __init__(self, *args, **kwargs): super(MyForm, self).__init__(*args, **kwargs) for key in self.fields:

我有以下内容:我想向我的ModelForm字段标签添加一个字符串。我想在形式课上做

我这样做:

class MyForm(ModelForm):

    class Meta():
        model = MyEntity

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)

        for key in self.fields:                                
           self.fields[key].label = "-- " + self.fields[key].label
我的模板中始终包含以下内容:

--django.utils.functional.代理位于0x04605E10的对象

标签在0下的
代理参数中包含正确的标签。我怎样才能得到这个标签?不会那么难吧

谢谢

这样行吗

from django.utils.translation import string_concat

for key in self.fields:
    self.fields[key].label = string_concat("-- ", self.fields[key].label)

这可能是因为标签是
ugettext\u lazy
对象,不能与常规字符串混合。从:

ugettext_lazy()调用的结果可以在任何使用unicode字符串的地方使用 Python中的(unicode类型的对象)。如果您尝试在bytestring(str 对象),则事情将不会按预期工作,因为ugettext_lazy()对象 不知道如何将自己转换为bytestring。不能使用unicode字符串 在bytestring内部,所以这与正常的Python行为是一致的。。。。如果 您曾经看到过类似“hello”的输出,您已经尝试过了 将ugettext_lazy()的结果插入bytestring


尝试改用
u“-
。mariodev的
string\u concat
建议也应该有效。

诀窍在于标签是一个字符串数组。您需要将数组位连接到如下字符串:

self.fields[key].label = "-- %s" % string.join(self.fields[key].label, "")