无法在Django中编辑

时间:2015-07-08 07:13:43

标签: python django

我有以下观点:

def unit_edit(request,pk):
    post = Unit.objects.get(pk=pk)
    if request.method == "POST":
        vehicle_group   = request.POST.get('vehicle_group'),
        unit_name       = request.POST.get('unit_name'),
        start_hm        = request.POST.get('start_hm'),
        operation_date  = request.POST.get('operation_date'),
        coremoduleid    = request.POST.get('coremoduleid'),
        mqmoduleid      = request.POST.get('mqmoduleid'),
        radiomoduleid   = request.POST.get('radiomoduleid'),
        post.save()

    t = loader.get_template('unit_edit.html')
    c = RequestContext(request, {'unit': post})

    return HttpResponse(t.render(c))

问题:

当我尝试编辑给定对象(数据)时,我无法获取要编辑的数据。

1 个答案:

答案 0 :(得分:0)

您实际上并未编辑从数据库中获取的对象。您的代码当前设置了许多变量而不是对象属性。您需要使用post对象为变量添加前缀。

通过执行post.variable_name = <value>,您正在修改对象属性值。

通过执行variable_name = <value>,您正在为函数变量创建并设置值。

def unit_edit(request,pk):
    post = Unit.objects.get(pk=pk)
    if request.method == "POST":
        post.vehicle_group   = request.POST.get('vehicle_group'),
        post.unit_name       = request.POST.get('unit_name'),
        post.start_hm        = request.POST.get('start_hm'),
        post.operation_date  = request.POST.get('operation_date'),
        post.coremoduleid    = request.POST.get('coremoduleid'),
        post.mqmoduleid      = request.POST.get('mqmoduleid'),
        post.radiomoduleid   = request.POST.get('radiomoduleid'),
        post.save()