Python 仅使用django列出的第二个字符
我正在尝试将django中默认的multi-select字段从多对多字段更改为复选框。我设法显示了复选框和所有内容,但在浏览器中,我只得到每个字段值的第二个字符,而在django shell中键入相同命令时,我得到了完整的列表 例如: 当我打字时:Python 仅使用django列出的第二个字符,python,django,unicode,Python,Django,Unicode,我正在尝试将django中默认的multi-select字段从多对多字段更改为复选框。我设法显示了复选框和所有内容,但在浏览器中,我只得到每个字段值的第二个字符,而在django shell中键入相同命令时,我得到了完整的列表 例如: 当我打字时: from myapp.models import Interest obj_list = Interest.objects.all() x = [obj.interest_mame for obj in obj_list] x 我得到的预期结果是
from myapp.models import Interest
obj_list = Interest.objects.all()
x = [obj.interest_mame for obj in obj_list]
x
我得到的预期结果是(对于前几个值)
然而,当我在浏览器中打开注册表时,我只得到每个字符串的第二个字母
在本例中,复选框旁边将是r,a,u,a
我的文件如下所示:
from django.forms import ModelForm
from myapp.models import Person, Interest
from django import forms
from django.forms.extras.widgets import SelectDateWidget
class PersonForm(ModelForm):
year_range = range(1996, 1920, -1)
person_birthdate = forms.DateField(widget=SelectDateWidget(years=year_range))
obj_list = Interest.objects.all()
person_interests = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=[obj.interest_name for obj in obj_list])
class Meta:
model = Person
我想可能是每个字符串前面的u,但我读到这只会显示它是一个unicode字符串
如果你们中有人能解释一下为什么我会出现这种奇怪的显示错误,我会非常高兴。选择需要是一个元组列表
(value,display\u value)
,如下所示。例如,如果希望显示值与提交的值相同,可以对obj\u列表中的obj执行选择=[(obj.interest\u name,obj.interest\u name)]
from django.forms import ModelForm
from myapp.models import Person, Interest
from django import forms
from django.forms.extras.widgets import SelectDateWidget
class PersonForm(ModelForm):
year_range = range(1996, 1920, -1)
person_birthdate = forms.DateField(widget=SelectDateWidget(years=year_range))
obj_list = Interest.objects.all()
person_interests = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=[obj.interest_name for obj in obj_list])
class Meta:
model = Person