django - 如何将模型集“绑定”到对象,填充它并在同一页面中进行编辑?
问题描述
我是 Django 和开发的新手。我有一个项目列表,当我单击测试的结果按钮时,我希望有一个用于该特定测试的模型表单集,我可以在其中填充它并在同一页面中进行编辑。我写的代码是“工作的”,但问题是当我填写表格并提交它时,它对所有测试的编辑都是一样的。
我希望你能理解我的解释(不是说英语的人)这是我的代码:
模型.py:
class ResultatTest(models.Model):
id = models.AutoField(primary_key=True)
test = models.ForeignKey('Test', on_delete=models.CASCADE)
services = models.CharField(max_length=30, choices=SERV_CHOICES)
notes = models.IntegerField(null=True)
comments = models.TextField()
def __str__(self):
return self.services
视图.py:
def resultatTest(request, id):
id = get_object_or_404(Test, pk=id)
ResultatTestFormset = modelformset_factory(ResultatTest, fields=('test', 'services', 'notes', 'comments'),extra=1)
if request.method == "POST":
formset = ResultatTestFormset(request.POST)#queryset=form.object.filter(test=test_id)
if formset.is_valid():
instances = formset.save(commit= False)
for instance in instances:
instance.save()
else:
formset = ResultatTestFormset()
return render(request, "Portail/Details/resultat.html", {'id': id,'formset': formset})
项目/test.html:
onclick ="window.location ='/resultat/{{test.id}}','_self';
网址.py:
path('resultat/<int:id>/',resultatTest,name='resultat'),
结果.html:
<form action="" method="post" id="resultatForm ">
{% csrf_token %}
<table id='supertable' border=1>
{{ formset.management_form }}
{% for form in formset %}
{% if forloop.first %}
<tr>
{% for field in form.visible_fields %}
<td style="background: cyan; line-height:1; white-space:nowrap;width:500px;" >{{ field.label_tag }}</td><
{% endfor %}
</tr>
{% endif %}
<tr>
{% for field in form.visible_fields %}
<td style="background: white; line-height:1; white-space:nowrap;" > {{ field}}</td>
{% endfor %}
</tr>
{ % endfor %}
我已经尝试并搜索了很多东西,但我无法解决我的问题。
解决方案
推荐阅读
- excel - 当另一个单元格为空白时,自动清除一个单元格的内容
- r - 在 dplyr 中嵌套 .key 已弃用,改用什么
- okhttp - 互联网不可用时 Okhttp 拦截器空指针异常问题
- reactjs - ternery 操作每次都返回 false - 反应
- objective-c - MacOS 11:NSMenu 3px 太小
- javascript - React JS 和 Node API 调用优化以获得更好的性能
- python - .dat 文件中的 Dlib 选项
- jmeter - Jmeter:使用SetUp线程组变量中的变量值运行HTTP采样器n次
- flutter - 我应该如何在下面的代码中添加 TabBarView?
- firebase - chrome 扩展中的 Firebase 身份验证问题