0
我是django框架的新手,希望將值存入數據庫。爲此,我使用post方法,但是當我檢查它正在執行其他部分。我通過了上一個問題,但仍然覺得不滿意我的情況。 守則如下:POST方法未執行填充表格,該值將數據保存到數據庫中
#views.py
from django.shortcuts import render, render_to_response
from django.http import HttpResponse, HttpResponseRedirect
from .models import StudentInfo, History
from django.shortcuts import get_object_or_404, render
from .forms import Info
def index(request):
return HttpResponse("Hello, world")
def info(request):
if request.method == "POST":
the_form=Info(request.POST or None)
context={
"form": the_form
}
if form.is_valid():
form.save()
else:
return HttpResponse("It sucks")
return render(request, 'details.html', context)
#models.py
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class StudentInfo(models.Model):
name=models.CharField(max_length=40, help_text="Enter Name")
reg_no=models.IntegerField(help_text='Enter your reg_no', primary_key=True)
email=models.EmailField(help_text='Enter email')
def __str__(self):
return self.name
class History(models.Model):
Reg_no=models.ForeignKey('StudentInfo', on_delete=models.CASCADE)
date=models.DateTimeField(auto_now=True)
def was_published_recently(self):
return self.date >= timezone.now() - datetime.timedelta(days=1)
#forms.py
from django import forms
from .models import StudentInfo, History
class Info(forms.ModelForm):
name= forms.CharField(label= 'Enter name')
reg_no= forms.CharField(label= 'Enter registration no.')
email= forms.EmailField(label= 'Enter email')
class Meta:
model= StudentInfo
fields= ['name', 'reg_no', 'email',]
#details.html
<h1>Enter the details</h1>
<form action="{% url 'auto:info' %}" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Go" />
</form>
輸出此刻你的看法'info'衝突與您的模型形式'信息'。你應該使用'lowercase_with_underscores'例如'index','info'用於基於函數的視圖,和'CamelCase'例如'StudentInfo','Info'用於你的模型/表單類。您錯誤地使用了過時的'render_to_response',您應該使用'render(request,template_name,context)'代替。 – Alasdair
我更改了模型名稱(即'StudentInfo,History'),窗體(Info),視圖(信息函數)保持不變,除了我使用渲染而不是render_to_response仍然不起作用。它仍在執行其他部分,即它很糟糕。 – user7189419
如果您更改了代碼,請編輯您的問題。 – Alasdair