我对 django 很陌生,对编程来说也很陌生。我已经完成了 django 教程并在网上搜索了这个问题的答案,但无济于事,所以现在我在这里。我很困惑 post 如何与 django 一起工作。我看过的所有教程如何在显示网页的视图中具有返回函数。我明白了。但是,如果页面是从该返回语句呈现的,那么用户如何更新数据呢?return 后不能再更新了,因为函数停止了,对吧?我在这里想念什么?任何帮助将不胜感激,我在这里变得相当绝望。
问问题
100 次
3 回答
0
view
用户更新函数逻辑中的数据。也就是说,如果用户想要更新一些东西,你可以将更新逻辑view
放在return
. 例如,你会这样做:
def update(request):
item = <some model>.objects.get(<something>)
<more code>
return <something>
于 2012-10-02T05:26:42.070 回答
0
通常一个编辑视图函数包含两部分——一个用于更新数据,另一个用于显示更新表单。例如,
def user_edit(request):
if request.method == 'POST': # is this a save action?
# save the user data
user_id = request.POST.get('user_id')
username = request.POST.get('username')
description = request.POST.get('description')
user = User.objects.get(id=user_id)
user.username = username
user.description = description
user.save()
return HttpResponseRedirect('/user/') # redirect to index
else:
# show the edit form
user_id = request.GET.get('user_id')
user = User.object.get(id=user_id)
return render_to_response('/user/edit.html', { 'user': user })
这条线有很多不同的选择if request.method == 'POST'
。您还可以使用if request.POST.get('user_id')
检查是否设置了指定字段,以确定这是否是保存操作。
于 2012-10-02T06:13:37.037 回答
0
Django 视图的一种模式(绝不是唯一的模式)是在视图的开头检查请求方法(GET 或 POST)。如果是 POST,则处理传入的数据(在视图返回之前),然后返回呈现的模板或重定向。
def view_function(request):
if request.method == 'POST':
if data_is_valid(request.POST):
save_data(request.POST)
return HttpResponseRedirect('/somewhere/good')
else:
return render('template', {'errors': what_went_wrong}
else:
return render('template')
于 2012-10-02T06:14:04.177 回答