Django

2016-04-12 15 views
0

'da hiçbir kullanıcı adı ile bir seçim dizisini nasıl değiştiririm? Bilete kullanıcı olmadığında 'Kullanıcı atanmadı' olmasını isterim. Django

benim modeline bunu ama atanan

def __unicode__(self): 
     print 'gets here****' 
     if not self.assigned: 
      return 'No user assigned' 
     else: 
      return self.assigned 

bir bilet için atanan kullanıcı herhangi bir değişiklik görmüyorum.

Bunu yapmanın başka bir yolu var mı?

Bu gibi benim şablonu ve görünüme sahip:

{% for ticket in tickets %} 
       <tr> 
        <td>{{ ticket.title }}</td> 
        <td> 
        {% for user in ticket.assigned.all %} 
         {{ user.email }}{% if not forloop.last %},{% endif %} 
        {% endfor %} 
        </td> 

ve benim Görünüm:

def get_data(self, **kwargs): 
     context = super(View, self).get_data(**kwargs) 
     project = self.project_described() 

     context.update({ 
      "project": project, 
      "tickets": project.tickets.all() 
     }) 
     return context 

cevap

2

Sen for...empty

kullanabilirsiniz Bu dahil etmek çok mantıklı değil bir model, böylece, döngü için yinelenen şeyin boş olması durumunda varsayılanı sağlayabilmeniz için

{% for user in ticket.assigned.all %} 
    {{ user.email }}{% if not forloop.last %},{% endif %} 
{% empty %} 
    No user assigned 
{% endfor %} 

Buradaki avantaj, kişilerin atamalarına izin vermek için tablonuza bir düğme eklemek için her zaman empty bölümünü kullanabilirdiniz (örneğin).

+1

! teşekkürler – user1958532

0

deneyin kullanımı {{ user }} yerine {{ user.email }} BT çalışır

+1

Her kim gözden geçiriyorsa, teknik olarak bu cevap aslında doğru yöntemi işe yarayacağından sorunu çözebilir – Sayse