Django formset未保存我的文件

2024-10-03 00:32:20 发布

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

所以我有这两个模型的讲座和文件上传。我希望用户能够添加一个讲座到一个特定的课程,并上传多个文件的讲座。问题是,在我提交表单后,除了上传的文件外,其他信息都会被保存,所以我猜我的表单集有问题。请看一下:

FileFormset = inlineformset_factory(Lecture, FileUpload, exclude=[]) def classroom(request): if request.method == 'POST': form1 = LectureForm(request.POST) if form1.is_valid(): lecture = form1.save() formset = FileFormset(request.POST, request.FILES, instance=lecture, prefix='files') if formset.is_valid(): formset.save() else: print(formset.errors) formset.save() return redirect('courses:index') else: form1 = LectureForm() formset = FileFormset() context = {'teacher_data': TeacherData.objects.all(), 'teachers': Teacher.objects.all(), 'courses': Course.objects.all(), 'form1': form1, 'formset': formset, } return render(request, 'courses/classroom.html', context) ^{pr2}$

class Lecture(models.Model):
    LECTURE_CHOICES = (
        ('Courses', 'Courses'),
        ('Seminars', 'Seminars'),
    )
    course = models.ForeignKey('Course', on_delete=models.CASCADE, default='', related_name='lectures',)
    lecture_category = models.CharField(max_length=10, choices=LECTURE_CHOICES, default='Courses',)
    lecture_title = models.CharField(max_length=100, blank=True, null=True)
    content = models.TextField(blank=True, null=True)

    def __str__(self):
        return str(self.lecture_title)


class FileUpload(models.Model):
    files = models.FileField(upload_to='documents', null=True, blank=True)
    lecture = models.ForeignKey('Lecture', related_name='files', on_delete=None, default=None)

    def __str__(self):
        return str(self.files)

Tags: 文件selftruereturnmodelsrequestdeffiles