Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在django发布。用户如何更新?_Python_Django_Post - Fatal编程技术网

Python 在django发布。用户如何更新?

Python 在django发布。用户如何更新?,python,django,post,Python,Django,Post,我对django是一个全新的人,对编程一般来说是相当陌生的。我已经完成了django教程并在网上搜索了这个问题的答案,但是没有结果,所以现在我在这里。我对post如何与django一起工作感到困惑。我看过的所有教程都介绍了如何在显示网页的视图中使用返回函数。我明白了。但是,如果页面是从返回语句呈现的,那么用户如何更新数据呢?返回后,由于函数停止,不能再进行更新,对吗?我错过了什么?任何帮助都将不胜感激,我在这里变得相当绝望 用户在视图功能的逻辑中更新数据。也就是说,如果用户希望更新某些内容,则将

我对django是一个全新的人,对编程一般来说是相当陌生的。我已经完成了django教程并在网上搜索了这个问题的答案,但是没有结果,所以现在我在这里。我对post如何与django一起工作感到困惑。我看过的所有教程都介绍了如何在显示网页的视图中使用返回函数。我明白了。但是,如果页面是从返回语句呈现的,那么用户如何更新数据呢?返回后,由于函数停止,不能再进行更新,对吗?我错过了什么?任何帮助都将不胜感激,我在这里变得相当绝望

用户在
视图
功能的逻辑中更新数据。也就是说,如果用户希望更新某些内容,则将更新逻辑放在
视图
函数的
返回
之前。例如,您可以执行以下操作:

def update(request):
    item = <some model>.objects.get(<something>)
    <more code>
    return <something>
def更新(请求):
item=.objects.get()
返回

通常,“编辑视图”功能包含两部分——一部分用于更新数据,另一部分用于显示更新表单。比如说,

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')
检查是否设置了指定的字段,以确定这是否是一个保存操作。

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')

在教程中,你不保存帖子吗?他有一个例子。