Python转换 - [<location:london =“”>]到伦敦</location:>

时间:2010-07-22 09:59:58

标签: python django

请原谅我的新手问题,但如何转换:

[<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)
)

4 个答案:

答案 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