Преобразование Python - [] в Лондон - PullRequest
0 голосов
/ 22 июля 2010

Извините, мой общий вопрос новичка, но как мне конвертировать:

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

7 голосов
/ 22 июля 2010

Вы печатаете QueryList вместо отдельных элементов.

u', '.join(x.place for x in Q)
1 голос
/ 22 июля 2010

Если это результат запроса, который вы там печатаете, попробуйте

[x.name for x in result]

, если name - это атрибут, содержащий имя местоположения.

1 голос
/ 22 июля 2010

Переопределите метод __repr__, если вы хотите изменить способ печати модели Django в оболочке.

0 голосов
/ 22 июля 2010

Вы можете сделать это с помощью регулярного выражения. Учитывая ваш первый пример:

import re
s = "[<Location: London>]"
m = re.search("Location: (.*)>", s)
print m.group(1)
London
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...