Python 用于编辑我的UserProfile模型的表单中的空值会导致所有内容都为空

Python 用于编辑我的UserProfile模型的表单中的空值会导致所有内容都为空,python,django,django-models,django-forms,django-views,Python,Django,Django Models,Django Forms,Django Views,我主要想做的是,当用户编辑他的个人资料时,一个空白字段会导致所有内容被覆盖 例如: 如果添加了名字,而用户不想更改,则不必重新填写整个表单,他唯一需要更改的字段是名字字段。提交表单时,其他空白字段会导致其模型字段为空 以下是我尝试过的: def editUserprofile(request): rc = context_instance=RequestContext(request) u = request.user if request.method=='POST':

我主要想做的是,当用户编辑他的个人资料时,一个空白字段会导致所有内容被覆盖

例如:

如果添加了名字,而用户不想更改,则不必重新填写整个表单,他唯一需要更改的字段是名字字段。提交表单时,其他空白字段会导致其模型字段为空

以下是我尝试过的:

def editUserprofile(request):
    rc = context_instance=RequestContext(request)
    u = request.user
    if request.method=='POST':
        form = UserProfileEdit(request.POST, request.FILES)
        if form.is_valid():
            u = UserProfile.objects.get(user=u)
            if 'avatar' in request.FILES :
                u.avatar = request.FILES['avatar']
            if 'first_name' in request.POST:
                u.first_name = form.cleaned_data['first_name']
            if 'last_name' in request.POST:
                u.last_name = form.cleaned_data['last_name']
            if 'email' in request.POST:
                u.email = form.cleaned_data['email']
            if 'country' in request.POST:    
                u.country = form.cleaned_data['country']
            if 'date_of_birth' in request.POST:
                u.date_of_birth = form.cleaned_data['date_of_birth']
            u.save()
            return HttpResponseRedirect(reverse('photocomp.apps.users.views.editUserprofile'))
    else:
        u = UserProfile.objects.get(user=u)
        form = UserProfileEdit()
    return render_to_response('users/editprofile.html',
                             {'form':form, 'u':u},
                             rc)
我是否可以在不编辑模型内容的情况下通过空字段

希望它不会让你如此困惑


如果你想了解更多细节,请告诉我:)提前谢谢

>这是编辑表单,应该考虑用当前值填充字段。通过向构造函数提交一个
实例
参数(如果您使用的是ModelForm),这很容易做到。这将使用正确的值预先填充值,用户可以更改任何他/她想要的值

form = UserProfileEdit(instance=u)