【发布时间】:2015-06-07 16:03:00
【问题描述】:
我正在做一个应用程序,但由于某种奇怪的原因,我无法将表单的值存储到数据库中。 问题是数据不是通过 POST 发送的,因此我的视图不会收集它们。那会是什么原因呢? 我的(简化的)模板代码:
{% block content %}
<form action = "{%url 'bodySettings' %}" method = "POST">
{% csrf_token %}
{{ form }}
<input type = "submit" value = "Save"/>
</form>
{% endblock content %}
还有我的 Django 视图:
@login_required
@csrf_protect
def bodysettings(request):
properties_Form = BodyPropertiesForm()
if request.method == 'POST':
print ("test")
if properties_Form.is_valid():
properties = properties_Form.save(commit = False)
properties.user = request.user
properties.save()
return HttpResponseRedirect('/home/')
args = {}
args.update(csrf(request))
args['request'] = request
args['form'] = properties_Form
return render_to_response('stats_test.html',args)
还有我的 forms.py:
from django import forms
from django.contrib.auth.models import User
from models import Body
class BodyPropertiesForm(forms.ModelForm):
MALE = 'M'
FEMALE = 'F'
GENDER_CHOICE = (
(MALE, 'male'),
(FEMALE, 'female'),
)
gender = forms.ChoiceField(choices = GENDER_CHOICE, required = True,
help_text = "Select your gender")
height = forms.IntegerField(required = True, help_text = "Enter your height")
weight = forms.IntegerField(required = True, help_text = "Enter your body weight" )
neck = forms.IntegerField(required = True, help_text = "Enter your neck size")
shoulders = forms.IntegerField(required = True, help_text = "Enter your width")
chest = forms.IntegerField(required = True, help_text = "Enter your chest size")
arm = forms.IntegerField(required = True, help_text = "Enter your arm size")
wrist = forms.IntegerField(required = True, help_text = "Enter your wrist size")
hips = forms.IntegerField(required = True, help_text = "Enter your waist size ")
waist = forms.IntegerField(required = True, help_text = "Enter your hips size")
thigh = forms.IntegerField(required = True, help_text = "Enter your thigh size")
calf = forms.IntegerField(required = True, help_text = "Enter your calf size")
class Meta:
model = Body
fields = ('gender','height','weight','neck','shoulders','chest','arm','wrist',
'waist','hips','thigh','calf')
exclude = ('user',)
【问题讨论】:
-
在此处粘贴您的
forms.py,我认为input字段没有定义名称。
标签: python html django post django-forms