【问题标题】:How to render a many to manyfield?如何渲染多对多字段?
【发布时间】:2019-09-27 14:16:21
【问题描述】:

我正在和一个朋友做一个待办事项,我们正在尝试在我们的模板中呈现它。

这是我的 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 %}

但只有“例程”正在渲染,有什么帮助吗?

【问题讨论】:

    标签: django templates model many-to-many


    【解决方案1】:

    试试这个

    {% 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}}

    【讨论】:

      猜你喜欢
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-22
      • 1970-01-01
      • 2013-06-16
      • 1970-01-01
      • 2017-10-26
      相关资源
      最近更新 更多