我可以在 ImageField 下的 Django Models.py 中存储 PDF 吗?文档似乎没有太多提到 PDF。我正在考虑尝试以下方面的内容:
from django.db import models
class Model(models.Model):
text = models.CharField(max_length=30, unique=False)
pdf = models.ImageField(upload_to='media/pdfs')
具有如下结构的 form.py:
from django import forms
from model.models import Model
class textForm(forms.ModelForm):
class Meta:
model = Model
fields = ('text',)
使用结构如下的 Views.py:
def user_view(request):
text = form.cleaned_data.get('text')
can.drawString(10, 100, Model.text)
existing_pdf = PdfFileReader(open("media/01.pdf", "rb"))
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))
PdfFileWriter().addPage(page)
return render(request, "app/fill_form.html", context)
试试models.FileField https://docs.djangoproject.com/en/3.0/topics/http/file-uploads/
这是文档中的一个片段
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import ModelFormWithFileField
def upload_file(request):
if request.method == 'POST':
form = ModelFormWithFileField(request.POST, request.FILES)
if form.is_valid():
# file is saved
form.save()
return HttpResponseRedirect('/success/url/')
else:
form = ModelFormWithFileField()
return render(request, 'upload.html', {'form': form})
如果您需要从视图访问上传的文件,它们将在
requests.FILES
要将 pdf 作为视图返回,您可以按照这篇文章如何在 Django 视图中显示 PDF 文件?
def pdf_view(request):
with open('/path/to/my/file.pdf', 'r') as pdf:
response = HttpResponse(pdf.read(), mimetype='application/pdf')
response['Content-Disposition'] = 'inline;filename=some_file.pdf'
return response
pdf.closed
如果您的模型中有 pdf,您可以在模型上添加一个 editPDF 函数,该函数可以按照您正在执行的方式添加所选文本(假设这是有效的)并保存 pdf。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句