Форматирование строк в Python - PullRequest
0 голосов
/ 16 июля 2011

В приложении django, которое я пишу, я создал MyEntry и MyCategory и дал им unicode () реализаций для них. Для представления записи я использую строку, построенную из имени категории записи , время начала и дата создания записи.

Однако, когда я пытаюсь составить список записей, я получаю

['category1']13:02:542011-07-16

['category2','category3']18:21:342011-07-11

['category3']18:09:192011-07-11 

Это [] происходит от понимания списка, я думаю. Я хотел бы получить имена, как

 category2,category3-18:21:34-2011-07-11
 category3-18:09:19-2011-07-11

Как мне реализовать Юникод () для моих моделей, чтобы получить этот эффект? Может кто-нибудь помочь?

Мои модели

from datetime import date
class MyCategory(models.Model):
    name=models.CharField(unique=True,max_length=50)
    ...
    def __unicode__(self):
        return self.name

class MyEntry(models.Model):
    today=models.DateField(default=date.today)   
    starttime=models.TimeField(null=True)     
    categories=models.ManyToManyField(MyCategory)
    ...
    def __unicode__(self):        
        return "%s%s%s"%([str(x.name) for x in self.categories.all()],self.starttime,self.today)

1 Ответ

1 голос
/ 16 июля 2011

Вы хотите заменить "%s%s%s"%([str(x.name) for x in self.categories.all()],…) на "%s-%s%s" % (','.join(str(x.name) for x in self.categories.all()),…).

...