【发布时间】:2018-01-31 07:44:38
【问题描述】:
我有一个表格里面的表格。如下所示:
{% extends "base.html" %}
{% block title %}Title{% endblock title %}
{% block content %}
<form actions="" method="post">
{% csrf_token %}
<table>
<table border = "1" cellpadding = "10" cellspacing = "10" bordercolor = "green">
<tr>
<th>numbers</th>
<th>Extension</th>
<th>Vendor</th>
</tr>
{% for number in numbers %}
<tr>
<td>{{ number }}</td>
<td class = "select">Select Extension
<select name="extensions">
{% for obj in sipextensionsets %}
<option value={{obj.sip_extension}}>{{ obj.sip_extension }}</option>
{% endfor %}
</select>
</td>
<td>vendor</td>
</tr>
{% endfor %}
</table>
<input type="submit" value="save"/>
</form>
{% endblock content %}
我的 forms.py 如下:
from django import forms
from .models import column
class didsForm(forms.ModelForm):
class Meta:
model = column
fields = ('extension')
下面是我的views.py
def saveintodb(request):
try:
instance = coloumn.objects.get(pk=1)
except:
instance = coloumn(pk=1)
instance.save()
if request.method == 'POST':
dids_form = didsForm(data=request.POST['extensions'], instance=instance)
if dids_form.is_valid():
dids_form.save()
messages.success(request, "Settings updated. Please apply settings.")
else:
messages.error(request, "Error: Invalid settings.")
else:
dids_form = didsForm(instance=instance)
return render(request, 'dids/index.html', {'dids_form': dids_form})
在表格中,有一个下拉菜单(选择标签)。当用户从下拉列表中选择某些内容并单击保存按钮时,我想将数据保存到数据库中。我知道我在观点的某个地方搞错了。
【问题讨论】:
-
在 htm 中您命名了字段扩展名,但在 forms.py 扩展名中。检查哪个是正确的。
-
@neverwalkaloner 在forms.py中是模型的列名。在 html 中,它是 select 标签的 name 属性。所以两者都是正确且相互独立的。
-
另外,
fields必须是forms.py中的一个元组。后面加逗号,比如fields = ('extension',) -
@zaidfazil 我刚才试过了,它并没有改变任何东西。数据库仍未填充
-
你调试了吗?当你保存数据时,
request.POST['extensions']里面会出现什么?
标签: python html django django-forms