2011-07-16 50 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()],…)