Как сделать много для многих? - PullRequest
0 голосов
/ 09 мая 2019

Я делаю задачу с другом, и мы пытаемся отобразить ее в нашем шаблоне.

Это мои models.py

class Todo(models.Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE,verbose_name="Nom de l'utilisateur")
    text = models.CharField(max_length=150, verbose_name="Nom de la Todo")

class Routine(models.Model):
todo= models.ManyToManyField(Todo)
text = models.CharField(max_length=150,)
author = models.ForeignKey(User, on_delete=models.CASCADE)

def __str__(self):
    return self.text

Мой views.py

class DashboardListView(LoginRequiredMixin,ListView):
model = Links
template_name = 'dashboard/home.html'
context_object_name ='links_list'

def get_queryset(self):
    return self.model.objects.filter(author=self.request.user)

def get_context_data(self, **kwargs):

    context = super().get_context_data(**kwargs)

context['todo_list']= Todo.objects.filter(author=self.request.user).order_by('-pk')[:15]        
context['routine_list']= Routine.objects.filter(author=self.request.user).order_by('-pk')[:15]
        return context

И в моем шаблоне я пытаюсь сделать так:

  {% for routine in routine_list %} 

{{routine.text|capfirst}}
<br/>{% for todo in routine.todo.all %}{{ text }}<br/>{% endfor %}
{{routine.todo.text|capfirst}}

{% endfor %}

Но выполняется только "рутина", любая помощь?

1 Ответ

1 голос
/ 09 мая 2019

Попробуйте вместо этого

{% for routine in routine_list %} 

    {{routine.text|capfirst}}
        <br/>{% for todo in routine.todo.all %}{{ todo.text }}<br/>{% endfor %}
    {{routine.todo.text|capfirst}}

{% endfor %}

В частности, внутри цикла вы хотите получить доступ к {{todo.text}} вместо {{text}}

...