【发布时间】:2020-03-23 19:30:12
【问题描述】:
我正在创建一个项目,并且每个时间线将有多个 pdf,因此我创建了以下模型:
作为 Django 的初学者,我对如何上传 pdf 文件(将由用户上传)感到困惑。当我在表单上显示它时,它会显示一个类似于 CHOICES 显示的字段。如果我尝试一个文件,它可以完美地工作,但对于 2 则它没有。
问题是:如何从 pdf 模型中显示 FileField?
class Pdf(models.Model):
pdf = models.FileField(upload_to='timelinepdfs')
class Timeline(models.Model):
header = models.CharField(max_length=30, choices=HEADER_CHOICES)
age = models.CharField(max_length=6, choices=AGE_CHOICES)
pdfs = models.ForeignKey(Pdf, on_delete=models.CASCADE)
这是我的 forms.py 文件:
class TimelineForm(forms.ModelForm):
class Meta:
model = Timeline
fields = ('header', 'age')
class PdfForm(forms.ModelForm):
class Meta:
model = Pdf
fields = ('pdf',)
这是我的 view.py 类:
def upload_timeline(request):
form = TimelineForm()
return render(request, 'upload_timeline.html', {
'form': form
})
【问题讨论】:
-
鉴于每个
Timeline可以有多个Pdfs,你不应该定义一个从Pdf到Timeline的ForeignKey吗? -
菜鸟错误!刚刚更正了,谢谢!