Python django新手。在使用ModelForm时遇到问题
我正在尝试编写一个非常简单的django应用程序。我无法让它在我的模板中显示我的表单Python django新手。在使用ModelForm时遇到问题,python,django,Python,Django,我正在尝试编写一个非常简单的django应用程序。我无法让它在我的模板中显示我的表单 <form ...> {{form.as_p}} </form> 切换到: (r'login/$','portal.views.register') 是的,我感觉糟透了 背景: 我有一个学生模型,我有一个注册页面。当它被访问时,它应该显示一个文本字段,询问学生姓名。如果学生填写了该字段,则会将其保存 #models.py class Student(models.Model):
<form ...>
{{form.as_p}}
</form>
切换到:
(r'login/$','portal.views.register')
是的,我感觉糟透了
背景:
我有一个学生模型,我有一个注册页面。当它被访问时,它应该显示一个文本字段,询问学生姓名。如果学生填写了该字段,则会将其保存
#models.py
class Student(models.Model):
name = models.CharField(max_length =50)
#forms.py
class StudentForm (forms.ModelForm):
class Meta:
model = Student
因此,我的观点如下:
def register(request):
if request.method == 'POST':
form = StudentForm(request.POST)
if form.is_valid():
form.save()
return render_to_response('/thanks/')
else:
student = Student()
form = StudentForm(instance =student)
return render_to_response('register.html',{'form':form})
问题在你看来。您将没有可从数据库检索的现有学生对象。下面的代码示例将帮助您实现“创建”视图 作为补充说明,您可能希望使用direct_to_模板通用视图功能使您的生活更轻松
def add_student(request):
if request.method == 'POST':
form = StudentForm(request.POST)
if form.is_valid():
new_student = form.save()
return HttpResponseRedirect('/back/to/somewhere/on/success/')
else:
form = StudentForm()
return direct_to_template(request,
'register.html',
{'form':form})
创建新学生不需要传递实例。我不确定这是否是导致表单无法工作的原因,但这肯定是不必要的。我的缺点:我在我的url.py文件中使用了direct_to_模板功能,谢谢大家!谢谢,但是在我第一次访问URL时表单仍然没有显示。不过我会看看你的建议。
def add_student(request):
if request.method == 'POST':
form = StudentForm(request.POST)
if form.is_valid():
new_student = form.save()
return HttpResponseRedirect('/back/to/somewhere/on/success/')
else:
form = StudentForm()
return direct_to_template(request,
'register.html',
{'form':form})