如何将模型表单数据保存到数据库

2024-10-03 11:14:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道我不应该为这个问题打开另一个线程,因为它已经在这里被问了很多次,回答了很多次。是的,我已经通过教程和浏览了很多网页-我所拥有的是我在这里和其他网站上找到的混合,但我有一个很难保存在数据库中的表单输入

有人应该来救我,我已经试着把这件事做了三天了,非常令人沮丧

这是我的密码

型号.py 班级问题库(models.Model):

First_Semester ='First_Semester'
Second_Semester ='Second_Semester'
Semesters = ((First_Semester, 'First_Semester'),(Second_Semester, 'Second_Semester'))

level = models.ForeignKey(ClassLevel)
CourseTitle = models.CharField(max_length=50, null=False)
CourseCode = models.CharField(max_length=10, null=False )
CourseUnit = models.IntegerField()
Semester = models.CharField(max_length=20, choices=Semesters, default="Select_Semester")
Date = models.DateField()
question_papers = models.FileField(upload_to = 'QuestionPapers')

def __str__(self):`enter code here`
    return '%s %s %s %s %s %s %s' %(self.level, self.CourseTitle, self.CourseCode, self.CourseUnit, self.Semester, self.Date, self.question_papers )



  forms.py
class QuestionBankForm(forms.ModelForm):
    class Meta:
        model = QuestionBank
        fields = ('level', 'CourseTitle', 'CourseCode', 'CourseUnit', 'Semester', 'Date', 'question_papers' )

views.py
def uploadQpapers(request):
    context = RequestContext(request)
    if request.method == 'POST':
       Qpapers = QuestionBankForm(data=request.POST)

       if Qpapers.is_valid():
           Qpapers.save()

           return render_to_response("Qbank/uploadQpapers.html", {'Qpapers':Qpapers}, context)

       else:
           return HttpResponse('INVALID')

我想能够上传过去的问题,并保存到数据库,但它不工作,没有错误消息,因为只有其他语句正在返回任何时候我试图保存,我真的不知道该怎么办,我需要有人来帮助我。提前谢谢


Tags: pyselfmodelsrequestlevellengthmaxfirst
1条回答
网友
1楼 · 发布于 2024-10-03 11:14:12

谢谢大家的建议,我终于成功了。 这里是主要问题的工作视图代码

def uploadQpapers(request):
    context = RequestContext(request)
    Qpapers = QuestionBankForm(request.POST, request.FILES)
    if request.method == 'POST':


       if Qpapers.is_valid():

           Upload_Qpapers = Qpapers.save(commit=False)

           if 'question_papers' in request.FILES:
               Upload_Qpapers.question_papers = request.FILES['question_papers']
               Qpapers.save()

           return HttpResponse("ALL GOOD DATA SAVED")
       else:
           return HttpResponse("NOT GOOD")

    else:
        Qpapers = QuestionBankForm()
        return render_to_response("Qbank/uploadQpapers.html", {'Qpapers':Qpapers}, context)

我以前的代码缺少quest.FILES,我没有单独保存上传的文件 我真的希望这个解决方案能帮助像我这样的初学者在未来

相关问题 更多 >