Python 无法让Django{%regroup%}正常工作

Python 无法让Django{%regroup%}正常工作,python,django,Python,Django,我正在尝试使用{%regroup%}模板标记来显示用户制作的列表,其中的项目如下所示: 列表名 项目 项目 项目 不是这个(这是我能让它呈现atm的唯一方法): 名单名称1 项目1 名单名称1 项目2 名单名称1 项目3 根据我对Django文档的阅读,我不得不把我的查询集变成一本字典,但我很难做到这一点。如果根据登录用户进行过滤,我还需要确保我的查询集。根据我将values()方法放在何处,我会遇到错误,或者它当前根本没有显示任何内容 我也试着遵循这个答案,但没有得到爱 这是我的观点 clas

我正在尝试使用
{%regroup%}
模板标记来显示用户制作的列表,其中的项目如下所示:

列表名

项目

项目

项目

不是这个(这是我能让它呈现atm的唯一方法):

名单名称1

项目1

名单名称1

项目2

名单名称1

项目3

根据我对Django文档的阅读,我不得不把我的查询集变成一本字典,但我很难做到这一点。如果根据登录用户进行过滤,我还需要确保我的查询集。根据我将values()方法放在何处,我会遇到错误,或者它当前根本没有显示任何内容

我也试着遵循这个答案,但没有得到爱

这是我的观点

class user_playlist(ListView):
    template_name = 'testingland/playlist.html'
    context_object_name = 'playlist'
    model = UserVenue

    def get_queryset(self):
        venue = self.request.GET.get('venue', None)
        list = self.request.GET.get('list', None)
        playlist = UserVenue.objects.filter(list__user=self.request.user)
        return playlist
以下是模型:

class UserList(models.Model):
    list_name = models.CharField(max_length=255)
    user = models.ForeignKey(User, on_delete=models.CASCADE) #is this okay?

    def __str__(self):
        return self.list_name

class UserVenue(models.Model):
    venue = models.ForeignKey(mapCafes, on_delete=models.PROTECT)
    list = models.ForeignKey(UserList, on_delete=models.PROTECT)
这里是模板(我是在阅读Django文档的基础上构建的)


{%按列表将场地重新分组为用户\播放列表%}
    {%用于用户_播放列表%}
  • {{list.grouper}
      {%用于列表中的位置。列表%}
    • {{place.vention}
    • {%endfor%}
  • {%endfor%}

是否回答了您的问题?我确实回顾了这一点,并发现有相似之处,但我在将解决方案应用于我的案例时遇到了困难,并认为,由于已有10年的历史,可能会有一些较新的方法可用。简短回答:不幸的是它没有(至少就我目前的经验水平而言)。好的。。。这是有道理的。它应该是
重新分组
播放列表,而不是
重新分组
地点
{%按列表将播放列表重新组合为用户\播放列表%}
,同时我强烈建议您不要使用
列表
作为标识符。这是一个python内置函数。
<div class="user_playlists">
{% regroup venue by list as user_playlist %}
  <ul>
      {% for list in user_playlist %}
      <li> {{ list.grouper }}
        <ul>
            {% for place in list.list %}
            <li>{{ place.venue }}</li>
            {% endfor %}
        </ul>
      </li>
      {% endfor %}
  </ul>
</div>