Django modelforms排除不工作
我已排除ModelForm中的字段,但它似乎不会影响窗体的显示。它甚至显示它时,我实例化没有 以下是模型表单: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
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))
你能展示一下你的模型吗?