2015-08-21 33 views
1

我有這樣的錯誤:在我的模型有兩個1:主題和節。在部分模型中,有一個字段可以保存本節中的每個主題。「無」表示,而不是對象的名稱Django的

class Section(models.Model): 
    """Model for a section.""" 
    ename = models.CharField(max_length=255) 
    name = models.CharField(max_length=255) 
    definition = models.CharField(max_length=500) 
    picture = models.ImageField(upload_to="physics/section", blank=True) 
    subjects = models.ManyToManyField("Subject") 

    def __str__(self): 
     return self.name 


class Subject(models.Model): 
    """Model for a subject in section.""" 
    ename = models.CharField(max_length=255) 
    name = models.CharField(max_length=255) 
    definition = models.CharField(max_length=500) 
    content = models.TextField() 

    def __str__(self): 
     return self.name 

我想顯示本節中的每個主題。我的看法和下面的模板: 觀點:

def section(request, section_name): 
    section = get_object_or_404(Section, ename=section_name) 
    return render(request, 'section.html', {'section': section}) 

模板:

{% extends 'base.html' %} 
{% block content %} 
{{ section.name }} 
{{ section.subjects }} 
{% endblock content %} 

但 「無」,顯示了本節的頁面。它看起來如此:

(真正的主題在這裏的名字)Physics.Subject.None

可有人說了什麼問題?謝謝,提前注意。

回答

3

由於您使用的是ManyToManyField來引用您的Section你需要訪問你的模板集,然後從中提取信息。

像這樣的東西應該足夠了:

{% extends 'base.html' %} 
{% block content %} 
{{ section.name }} 
{% for subject in section.subjects_set.all %} 
{{ subject.name }} 
{% endfor %} 
{% endblock content %} 
+1

真的很感謝你們,這是工作! –

相關問題