Python 如何使变量从Django中的其他函数可见

Python 如何使变量从Django中的其他函数可见,python,django,Python,Django,我想从json预填充的modelform进行编辑,并尝试使用上一个函数中的用户数据填充表单行,但当插入例如从model_中的last_name from_json时,我收到错误“未定义全局名称‘last_name’”。否则,若我将变量表示为字符串“last_name”视图呈现可编辑的填充表单行。那么,请问,如何使变量可见 def model_from_json(request): path = 'management/test.json' with open(path,'r+')

我想从json预填充的modelform进行编辑,并尝试使用上一个函数中的用户数据填充表单行,但当插入例如从model_中的last_name from_json时,我收到错误“未定义全局名称‘last_name’”。否则,若我将变量表示为字符串“last_name”视图呈现可编辑的填充表单行。那么,请问,如何使变量可见

def model_from_json(request):
    path = 'management/test.json'
    with open(path,'r+') as json_file:
        json_data = json_file.read()
        json_dict = json.loads(json_data)

        username = json_dict[0]['fields']['username']
        first_name = json_dict[0]['fields']['first_name']
        last_name = json_dict[0]['fields']['last_name']
        date = json_dict[0]['fields']['last_login']
        email = json_dict[0]['fields']['email']


    form = UserDataForm({
        'username':username ,
        'last_name':last_name,
        'first_name':first_name,
        'date':date,
        'email':email
        })
        form.save()

    template = 'create.html'
    return render_to_response(template, locals(),context_instance=RequestContext(request))

def form_edit(request, id=None, template_name='edit.html'):
    if id:
        username = get_object_or_404(User, pk=id)
        if User.user != request.user:
            return HttpResponseForbidden()
    else:
        username = User(username=request.user)

    if request.POST:
        form = UserDataForm(request.POST, instance=username)
        if form.is_valid():
            form.save()
            message=messages.add_message(request, messages.SUCCESS,(''))
            # If the save was successful, redirect to another page
            redirect_url = reverse('index')
            return HttpResponseRedirect(redirect_url)

    else:
        form = UserDataForm({'last_name':last_name})

    return render_to_response('edit.html', {
        'form': form,
    }, context_instance=RequestContext(request))

将要保存的值放入


改变你的观点,比如:

if request.POST:
    ....
else:
    form = UserDataForm(initial={'last_name':username.last_name})

谢谢跟随您:last\u name=str(request.user.last\u name)
if request.POST:
    ....
else:
    form = UserDataForm(initial={'last_name':username.last_name})