2013-03-13 71 views
0

用下面的代码,我想回到这个作品的个性化......Django的:返回计数值

def contact_count(self): 
    return len(self.contacts) 

但是,如果len为0是回报空白,我希望它是0

所以我试图

def contact_count(self): 
    if len(self.contacts) == 0: 
     return 0 
    else: 
     return len(self.contacts) 

有没有更好的办法,我应该处理这个?

UPDATE:

的要求,这是接触是如何定义的,因此及时更新我的​​问题...

models.py

class Groups(models.Model): 
    name = models.CharField(max_length=60) 

    def contact_count(self): 
     return len(self.contacts) 

class Contacts(models.Model): 
    first_name = models.CharField(max_length=60) 
    last_name = models.CharField(max_length=60) 
    #FK 
    groups = models.ManyToManyField(Groups, related_name='contacts') 

正如你可以看到,如果来自related_name

+1

'contacts'是如何定义的? – 2013-03-13 21:24:09

+0

'return 0 if self.contact else len(self.contacts)'虽然它只是一个风格问题,真的像你的工作 – 2013-03-13 21:25:15

+1

你是什么意思len(self.contacts)返回空白?也许你得到错误页面,因为你试图len(None),这是例外吗? – 2013-03-13 21:25:51

回答

3

您应该使用self.contacts.count()

请参阅Django docs关于多对多关系的更多详细信息。

+0

谢谢你多数民众赞成在工作:) – jason 2013-03-13 21:42:13