2016-04-08 50 views
0

Belirli bir yazarla bir projedeki tüm görevlerin bir çıktısını almak için bir sorgu nasıl oluşturulur? Şablonumda tüm Projeler üzerinde yineleme yapmak ve ana Projenin altındaki tüm görevleri göstermek istiyorum.Yabancı için sıralayan bir 1toM queryset oluşturun

{% for p in projects %} 
add project html 
    {% for t in projects.tasks %} 
    add task html 
    {% endfor %} 
{% endfor %} 

Modeller:

class Project(models.Model): 
    projectname_text = models.CharField('Projectname', unique=True, max_length=200) 

class Task(models.Model): 
    project = models.ForeignKey(Project, on_delete=models.CASCADE,) 
    task_text = models.CharField(max_length=200) 
    author = models.ForeignKey(User, null=True, blank=True, related_name='author') 

Birinin mümkün yardıma umut beni :)

cevap

1

Ben şöyle size Task modeline project alanını değiştirmek öneririz:

class Task(models.Model): 
    project = models.ForeignKey(Project, on_delete=models.CASCADE, 
           related_name='tasks') 
    # ... 

Bu size bir Belirli bir proje için tüm görevleri project.tasks.all() aracılığıyla onayla. Eğer p başvurmalıdır nerede anda projects atıfta çünkü

Ayrıca, hafifçe şablonunu değiştirmek gerekir ve p.tasks.all sadece p.tasks üzerinde döngü gerekir.

{% for p in projects %} 
add project html 
    {% for t in p.tasks.all %} 
    add task html 
    {% endfor %} 
{% endfor %} 

Sen projects görünümünüze tarafından Şablonunuza geçirilen bağlamında olmasını sağlamak gerekir.

+0

Teşekkürler, şablonun içindeki "p.tasks.all" beni oraya aldı :) – qwertasyx