Django-从ModelForm字段标签获取字符串
我有以下内容:我想向我的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:
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, "")