我的症状是当我单击修改按钮然后我写下由bootstrap div部分实现的新窗口的信息。但是,我的数据库根本没有变化。请忽略...在代码中,我删除看起来很乱的属性。代码可能有拼写错误,因为我手动写下来查找错误,但我找不到。
我在view.py中尝试过,address_modify返回Httpresponse(street),但它返回None。
view.py
def address_modify(request, adid):
cat = get_object_or_404(Address, adid=adid)
if request.method == "POST":
old_adid = adid
email = request.user.email
street = request.POST.get("street", None)
city = request.POST.get("city", None)
...
Address.objects.filter(adid=adid).update(..., street=street, city=city, state=state, ...)
return redirect('/address/')
return redirect('/address/')
模板(我将其命名为address.html)
<button class="btn btn-success" data-toggle="modal" data-target="#modify">MODIFY</button>
<div class ="model fade" id="modify" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<from action="" method="POST">{% csrf_token %}
</div>
<div class="modal-body">
<input type="text" name="street">
<input type="text" name="city">
...
...
<input type="text" name="zipcode">
</div>
<div class="modal-footer">
<a href="{% url 'address_modify' i.adid %}">{% csrf_token %}
<button type="button" class="btn btn-primary">Save Change</button></a>
<div></form>
urls.py
url(r'^address_modify/(?P<adid>[0-9]+)/$', MyAppView.address_modify, name='address_modify'),
答案 0 :(得分:1)
在django中,最佳做法是创建一个forms.py
文件来处理表单,你可以很容易地阅读它上面的文字,基本上表单将确保你所有的数据都被读取。
答案 1 :(得分:0)
这不是您实现表单和表单提交的方式。您的链接没有提交任何内容,只是打开一个链接。这是标准的表单语法:
<form method="POST">
{% csrf_token %}
... your form input fields here ...
<input type="submit" value="Save changes">
</form>
您必须提交表格。注意type="submit"
那里。
接下来,Django具有表单功能。用它。正如@ Saumel-Omole建议的那样创建forms.py
。模型地址的表单如下所示:
class AddressForm(forms.ModelForm):
class Meta:
model = Address
fields = '__all__'
然后修改视图以使用如下形式:
def address_modify(request, adid):
cat = get_object_or_404(Address, adid=adid)
form = AddressForm(instance=cat)
if request.method == 'POST':
form = AddressForm(request.POST, instance=cat)
if form.is_valid():
form.save()
return redirect('/address/')
else:
print(form.errors) # change to logging
return render(request, 'address.html', {'form': form})
浏览official Django tutorial。这些基础都在那里。也许这需要你花一两天的时间来完成它,但是长期来看,这远远不及猜测和谷歌搜索基本的东西几天。