请原谅我的新手问题,但如何转换:
[<Location: London>]
或[<Location: Edinburgh>, <Location: London>]
等
成:
'伦敦'或'爱丁堡,伦敦'
将其置于上下文中的一些背景信息:
Models.py:
class Location(models.Model):
place = models.CharField(max_length=100)
def __unicode__(self):
return self.place
class LocationForm(ModelForm):
class Meta:
model = Location
forms.py
class BookingForm(forms.Form):
place = forms.ModelMultipleChoiceField(queryset=Location.objects.all(), label='Venue/Location:', required=False)
views.py
def booking(request):
if request.method == 'POST':
form = BookingForm(request.POST)
if form.is_valid():
place = form.cleaned_data['place']
recipients.append(sender)
message = '\nVenue or Location: ' + str(place)
send_mail('Thank you for booking', message, sender, recipients)
)
答案 0 :(得分:7)
您正在打印QueryList而不是单个元素。
u', '.join(x.place for x in Q)
答案 1 :(得分:1)
如果要更改在shell中打印Django模型的方式,请覆盖__repr__
方法。
答案 2 :(得分:1)
如果是您在那里打印的查询结果,请尝试
[x.name for x in result]
如果name
是包含位置名称的属性。
答案 3 :(得分:0)
你可以用正则表达式做到这一点。给出你的第一个例子:
import re
s = "[<Location: London>]"
m = re.search("Location: (.*)>", s)
print m.group(1)
London