2016-05-21 8 views
0

私はこれらの2つのモデルを持っており、自分のページに特定のタスクでプロジェクトを表示したいと思います。これらは私のモデルです:逆クエリmanytoMany Django

class Project (models.Model): 
    name = models.CharField(verbose_name="Project name", max_length=25) 
    tasks = models.ManyToManyField(Task, verbose_name="tasksInProject", blank=True, 
            related_name="projects+") 

class Task(models.Model): 
    name = models.CharField(verbose_name="Task", max_length=50) 

私はこのビューを呼び出す:

class TaskToProjectFilterView(DetailView): 
    model = Task 
    template_name = "vivs/task_filter.html" 
    context_object_name = "task_filter" 

そして、これが私のHTMLテンプレートです:

<h4>filter : {{ task_filter }} </h4> 
<h4>projects : 
{% for element in task_filter.projects.all %} 
    {{ element }} 
{% endfor %} 
</h4> 

このコードは{{ task_filter }}なく{{ task_filter.projects.all }}のリストが表示されます。

私を助けることができますか?私は間違いを理解していません。ありがとう!

+2

'' related_name'の '' projects + ''はtypoであると仮定します。 'task_filter.projects.all'がなぜうまくいかないのかを完全に説明します。 – schwobaseggl

+0

お返事ありがとうございました!今働いている –

答えて

1

schwobaseggl+記号を削除し、期待通りに動作するはずです、使用して、述べたように:

{% for element in task_filter.projects.all %} 

Django Docsから:

あなたが後方関係を作成しないDjangoのを好む場合related_nameを '+'に設定するか、 '+'で終了します。例えば、これはUserモデルがこのモデルと後方関係を持たないことを保証します:

+0

はい、私の間違いでした、説明のおかげで! –

関連する問題