django - 我无法将 django 表单中的记录添加到数据库中
问题描述
我在 views.py 文件中有这个函数,负责将记录添加到数据库中
def add_academy(request,pk):
child = get_object_or_404(Child_detail, pk=pk)
academic = Academic.objects.get(Student_name=child)
form = AcademicForm(request.POST, instance=academic)
if form.is_valid():
form.save()
return redirect('more',pk=pk) #it will redirect but can't create a new record
else:
form=AcademicForm()
context = {
'academic':academic,
'child':child,
'form':form,
}
return render(request,'functionality/more/academy/add.html',context)
这是我的 form.py 文件
class AcademicForm(forms.ModelForm):
class Meta:
model=Academic
fields='Class','Date','Average_grade','Overall_position','Total_number_in_class'
labels={
'Average_grade':'Average Grade',
'Overall_position':'Overall Position',
'Total_number_in_class':'Total Number In Class'
}
Date = forms.DateField(
widget=forms.TextInput(
attrs={'type': 'date'}
)
)
这是我的 model.py 文件
class Academic(models.Model):
Student_name = models.ForeignKey(Child_detail,on_delete = models.CASCADE)
Class = models.CharField(max_length = 50)
Date = models.DateField()
Average_grade = models.CharField(max_length = 10)
Overall_position = models.IntegerField()
Total_number_in_class = models.IntegerField()
def __str__(self):
return str(self.Student_name)
这也是我的模板将用于显示表单
<div class="card-body">
<form action="" method="POST" autocomplete="on">
{% csrf_token %}
<div class="form-group">
{{form | crispy}}
<input type="submit" value="Save" class="btn btn-primary btn-block">
</form>
</div>
解决方案
添加新记录
def add_academy(request,pk):
child = get_object_or_404(Child_detail, pk=pk)
academic = Academic.objects.get(Student_name=child)
if request.method=='POST':
form = AcademicForm(request.POST)
if form.is_valid():
form.save()
return redirect('more',pk=pk)
else:
context = {
'academic': academic,
'child': child,
'form': form,
}
return render(request, 'functionality/more/academy/add.html',context)
else:
form=AcademicForm()
context = {'academic':academic,'child':child,'form':form}
return render(request,'functionality/more/academy/add.html',context)
推荐阅读
- junit - Spring Integration - 回复通道无响应
- sql - 根据 group by 条件获取 id
- python - 如何使用 pyglet 播放流音频?
- flask - 基于配置文件的动态 WTF 表单
- python - 在一个宽大的 Pandas DataFrame 中将 3 个文本列折叠为 1 个
- c# - 使用凭证身份时,http 请求未经客户端身份验证方案“匿名”授权
- vim - 从命令行使用过滤的文件列表打开 netrw
- python - Python x Tweepy:如何从列表中包含的所有用户中提取推文
- android - 从 Intent.ACTION_GET_CONTENT 读取 Uri 是否需要 READ_EXTERNAL_STORAGE 权限
- javascript - 强连通分量算法