Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
Django modelforms排除不工作_Django_Django Forms - Fatal编程技术网

Django modelforms排除不工作

Django modelforms排除不工作,django,django-forms,Django,Django Forms,我已排除ModelForm中的字段,但它似乎不会影响窗体的显示。它甚至显示它时,我实例化没有 以下是模型表单: class WorkoutForm(ModelForm): class Meta: model = Workout exclude = ('user',) 以及相关视图: def addworkout(request, uid): thisuser = get_object_or_404(User, pk=uid) i

我已排除ModelForm中的字段,但它似乎不会影响窗体的显示。它甚至显示它时,我实例化没有

以下是模型表单:

class WorkoutForm(ModelForm):
    class Meta:
        model = Workout
        exclude = ('user',) 
以及相关视图:

def addworkout(request, uid):    
    thisuser = get_object_or_404(User, pk=uid)
    if request.method == 'POST':
        form = WorkoutForm(request.POST)
        if form.is_valid():
            form.save() 
            return HttpResponseRedirect('/u/'+str(uid))
    else:
        w = Workout(user=thisuser)

        #creates a form for thisuser
        form = WorkoutForm(instance = w)
    return render_to_response('addworkout.html', {'form':form, 'user':thisuser},   RequestContext(request))
以及模板:

<body>
    <p>"{{request.path}}" </p>
    Add a new workout, {{user.name}}! 
    <form action="/u/1/addworkout" method="POST">{% csrf_token %} 
    {{ form.as_p }} 

    <input type="submit" value= "Submit" />
    </form>
</body>

“{request.path}}”

添加一个新的训练,{{user.name}! {%csrf_令牌%} {{form.as_p}}
这是什么

else:
    w = Workout(user=thisuser)
不应该是这样的吗

w = Workout.objects.get(user=thisuser)
如果是这样,它是否修复了错误

POST
request块中,还需要传入实例,以便
form=WorkoutForm(request.POST,instance=w)

重新编写后,您的视图应如下所示:

def addworkout(request, uid):
    thisuser = get_object_or_404(User, pk=uid)
    w = get_object_or_404(Workout, user=thisuser)
    form = WorkoutForm(instance = w)

    if request.method == 'POST':
        form = WorkoutForm(request.POST, instance=w)
        if form.is_valid():
            form.save() 
            return HttpResponseRedirect('/u/'+str(uid))

    return render_to_response('addworkout.html', {'form':form, 'user':thisuser},   RequestContext(request))

你能展示一下你的模型吗?