html - 如何为单个模板中的每个条目分隔输入表单
问题描述
我有一个显示在网页中的条目列表。每个条目具有相同的输入形式。但是当数据被放入输入表单时,我的问题就出现了,它出现在每一个表单上。我该如何改变这个。
每个输入表单都被视为分布在许多条目上的单个克隆实体。
视图.py
def topic(request, topic_id, type): #
topic = Topic.objects.get(id = topic_id, type = 't_topic')
entries = topic.entry_set.order_by('-date_added')
images = Image.objects.filter(imgtopic__in = entries)
ArticleFormSet = formset_factory(CheckAnswer, extra = 2)
if request.method == 'POST':
formset = ArticleFormSet(request.POST)
if form.is_valid():
return HttpResponseRedirect(reverse('learning_logs:index'))
else:
formset = ArticleFormSet()
context = {'topic': topic, 'entries': entries, 'images': images, 'formset': formset}
return render(request, 'learning_logs/topic.html', context)
topic.html 模板
{%load staticfiles %} {% 块内容 %}
{% for entry in entries(n) %}
<div class = 'secondary-container'>
<li>
<div class = 'date'>
<p >{{ entry.date_added|date:'M d, Y H:i'}}</p>
</div>
{%include 'learning_logs/view_files.html'%}
<div class = 'video-container'>
{%include 'learning_logs/video.html' %}
</div>
<div class = 'entry-text'>
<p>{{ entry.text|linebreaks }}</p>
<p>$ {{entry.price_set.get.ptext}}</p>
</div>
</li>
<li>
<p> Enter Answer: </p>
<form action = "{%url 'learning_logs:topic' topic.id topic.type%}" method = 'post'>
{{formset.management_form}}
<table>
{% for form in formset%}
{{form.as_p}}
{% csrf_token %}
<button name = "submit">Submit answer</button>
{% endfor %}
</table>
</form>
</div>
表格.py
类 CheckAnswer(forms.Form):
your_answer = forms.CharField(label = "Enter Your Key", max_length = 100)
def clean(self):
cleaned_data=super(CheckAnswer, self).clean()
your_answer = cleaned_data.get("your_answer")
try:
p = Keys.objects.get(key = your_answer)
except Keys.DoesNotExist:
raise forms.ValidationError("Incorrect code.")
我的新问题是我无法将表单分成不同的列表。由于 extra = 2,我在同一个条目列表中获得了 2 个表单实例。
我尝试在 topic.html 模板中使用 {%for form in formset%} 命令为每个条目提供一个表单,但是当我单击提交时,我得到一个 ['ManagementForm data is missing or has been tampered with']。
解决方案
推荐阅读
- python - 为什么我不能运行我的脚本,模块问题
- bash - 创建目录后立即更改目录权限和所有者的脚本?
- python - Python 的 UnboundLocalError 和内联变量的赋值
- python - 定时轮换文件日志
- variables - 詹金斯,全球变量
- c# - 从 Json 创建的键值列表,转换回 Json
- c# - 为什么重复 Enumerable 到 Observable 转换块
- constraints - Pyomo 约束 > 100000 或 0
- python - 如何将字符串列表向右对齐?
- swift5.1 - Swit 5.1 将 CoreData 添加到现有项目但我收到此错误