从模板检索复选框输出并将其发送到辅助视图

时间:2019-02-18 21:56:00

标签: python html django

我有这个模板,可以按标准的博客格式输出对象(瑜伽位置)。

用户可以通过另一种形式将新的瑜伽姿势上传到该网站,但是所有这些动作都是花哨的,但是...

我现在在模板中为将在每个“帖子”中生成的每个对象添加了一个复选框,其思想是用户应该可以随意选择各种帖子(没人愿意做)一口气实现了2,396个瑜伽位置...),然后单击一个提交按钮,然后重定向到一个新页面,该页面中现在过滤掉的帖子将在带有计时器的js驱动的“电影剪辑”中显示。

目标是创建一个个人瑜伽/锻炼应用程序。

模板看起来像这样:

{% for res in results %}
<h2 align="center">
  {{ res.name }}
</h2>
<div class=""  align="center">
  <img src="/media/{{ res.image }}" alt="" style="width:100%; border-radius:6px;">
</div>
<h4 style="margin-left:30px; margin-bottom:0px; margin-top:12px;">
  What it does:
</h4>
<p style="margin-left:30px; margin-top:0px;">
  {{ res.description }}
</p>
<h4 style="margin-left:30px; margin-bottom:0px;">
  How to do it:
</h4>
<p style="margin-left:30px; margin-top:0px;">
  {{ res.instruction }}
</p>
<label class="switch">
  <input type="checkbox">
  <span class="slider round"></span>
</label>
{% endfor %}
<a href="{% url 'yoga:playhead' %}" class="btn btn-secondary ml-2 mt-2 mr-2 mb-2">GO!</a>

在我看来,我设法将这些小家伙组合在一起,前者提供主要列表,后者(希望有一天)输出过滤后的列表:

def start_up(request):
    results = YogaModel.objects.all()
    # data = serializers.serialize("json", results, fields=('name', 'image', 'audiofile'))
    if request.method == 'POST':
        form = YogaForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('/yoga/')
    else:
        form = YogaForm()
    return render(request, 'yoga/start.html', {'results': results, 'yoga_stuff':form})


def playhead(request):
    qs = YogaModel.objects.all()
    data = serializers.serialize("json", qs, fields=('name', 'image', 'audiofile'))
    print('\n{}\n\n{}\n'.format(qs, data))
    context = {
        'data':data,
        'position':qs
        }
    return render(request, 'yoga/doyoga.html', context)

我一直在思考如何解决从此模板向第二个视图发送回第二个问题的问题,但是每次我尝试想象应该如何去做时,我的想法都会一片空白,随后研究这个话题使我陷入种种死胡同。

我既不擅长编码又不擅长编码术语,这可能并没有真正的帮助。

我可能应该提到我是从工作示例中学到的还是从我的经验(这是我短暂的编码生涯)中完全没有学到的,所以请:在将自己的智慧传给我时要保持柔和:)

1 个答案:

答案 0 :(得分:0)

无法通过HTTP重定向POST数据。查看此答案:https://softwareengineering.stackexchange.com/questions/99894/why-doesnt-http-have-post-redirect

您应该使用sessions