2011-07-16 100 views
0

在我寫的一個django應用程序中,我創建了一個MyEntry和MyCategory,併爲它們提供了unicode()實現。爲了表示條目,我使用從條目的類別名稱,開始時間和條目的創建日期。Python中的字符串格式

然而,當我嘗試列表中的條目,我得到

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

我應該如何實現的Unicode()爲我的模型來獲得這種效果呢?有人可以幫忙嗎?

我的模型

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

你想"%s-%s%s" % (','.join(str(x.name) for x in self.categories.all()),…)更換"%s%s%s"%([str(x.name) for x in self.categories.all()],…)