【发布时间】:2023-01-25 00:53:01
【问题描述】:
我正在尝试将我的表单保存在我的数据库中。但是我的代码添加了一个新行而不是保存对现有行的更改。我的错误在哪里?
查看.py
def settings(request):
error = ''
if request.method == 'POST':
new_form = TrafficSourcesForm(request.POST)
if new_form.is_valid():
new_form.save()
else:
error = 'Something went wrong!'
new_form = TrafficSourcesForm()
forms = [TrafficSourcesForm(instance=x) for x in TrafficSources.objects.all()]
return render(request, 'mainpage/dashboard.html', {'new_form': new_form, 'forms': forms, 'error': error})
模板
<div class="table table-striped table-hover">
<div class="table-row">
<th style="width: 42%">Name</th>
<th style="width: 43%">Token</th>
<th style="width: 15%">Action</th>
</div>
{% for form in forms %}
<div class="table-row">
<form method="POST">
{% csrf_token %}
<div class="table-cell">{{ form.name }}</div>
<div class="table-cell">{{ form.token }}</div>
<div class="table-cell"><button class="btn btn-lg btn-success w-100"">Save</button></div>
</form>
</div>
</div>
如果不清楚:我在页面上显示了我数据库中的所有表格。我想编辑它们并再次保存到数据库中。
【问题讨论】:
-
对于初学者,您需要使用“PUT”而不是“POST”,然后相应地调整您的 PUT 请求。检查这个:django-rest-framework.org/tutorial/2-requests-and-responses和django-rest-framework.org/tutorial/3-class-based-views
-
我试过了,如果我放了,什么也没有发生
标签: python django django-models django-forms