2016-02-19 74 views
1

我得到了一個多對多字段使用一個ForeignKey的模型:的Django ForeignKey的在多對多字段顯示爲無

class DefinitionTag(models.Model): 
    tag = models.CharField(max_length=50, default="Tag") 

    def __str__(self): 
     return self.tag 


class Definition(models.Model): 
    name = models.CharField(max_length=100) 
    definition = models.CharField(max_length=1000) 
    fundstellen = models.CharField(max_length=300, blank=True) 
    wissenswertes = models.CharField(max_length=1000, blank=True) 
    tags = models.ManyToManyField(DefinitionTag) 

    def __str__(self): 
     return self.name 

這部作品,並在管理一切設置,這樣我就可以使用它。問題是,如果我嘗試在我的代碼視圖來顯示與數據庫項目的表:

def home(request): 
    query_results = Definition.objects.all() 

    context = { 
     "query_results": query_results 
    } 
    return render(request, 'home.html', context) 

和HTML:

{% for item in query_results %} 
    <tr> 
     <td>{{ item.name }}</td> 
     <td>{{ item.definition }}</td> 
     <td>{{ item.fundstellen }}</td> 
     <td>{{ item.wissenswertes }}</td> 
     <td>{{ item.tags }}</td> 
    </tr> 
    {% endfor %} 

在標籤欄只給了我:

DefinitionTag.None

我如何顯示那裏所有標籤選擇在manytomany領域?

我希望我會得到一個提示! 謝謝

+1

看看[這個答案](http://stackoverflow.com/questions/3411961/querying-many-to-many-fields-in-django -模板)。你需要遍歷'item.tags.all'。 –

回答

5

您需要在m2m字段上循環以獲取所有標記。只要提到它不會給你鏈接到其個人標籤:

{% for item in query_results %} 
    <tr> 
     <td>{{ item.name }}</td> 
     <td>{{ item.definition }}</td> 
     <td>{{ item.fundstellen }}</td> 
     <td>{{ item.wissenswertes }}</td> 
     <td> 
      {% for tag in item.tags.all %} 
       {{ tag }} 
      {% endfor %} 
     </td> 
    </tr> 
{% endfor %} 

如果你不知道如何從M2M領域的所有項目,請django doc

2

嘗試通過標籤循環:

{% for tag in item.tags.all %} 
    {{ tag }} 
{% endfor %} 
+0

這幫了我很多,謝謝! –

+0

非常歡迎 –

相關問題