【发布时间】:2021-08-12 04:55:21
【问题描述】:
我正在从我的模型上传一个文件,在我的视图中我对文件执行一些操作。我正在使用 Django 的 CBV 的 DetailView,我在其中获取一个对象并对其执行一些操作。现在我想要模板中的数据(在执行操作之后)。我知道如何在我的模板中显示该文件,因为该文件位于 models 中。但是这些功能不在模型中,我想在我的模板中打印它们。 我的 models.py 是:
class FileUpload(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE, blank=True , null=True)
file = models.FileField(upload_to='files')
def get_absolute_url(self):
return reverse('home')
我的 views.py 是:
class PostDetailView(DetailView):
context_object_name = "object_list"
template_name = "post_detail.html"
def get_object(self, *args,**kwargs):
request = self.request
pk = self.kwargs.get('pk')
instance = FileUpload.objects.get(id = pk) #I want to print this instance
if instance is None:
raise Http404("File Does not EXIST")
else:
pdfFileObj = open(instance.file.path, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
print('number of pages = ',pdfReader.numPages)
pageObj = pdfReader.getPage(0)
print(pageObj.extractText()) #I want to print this
query = pageObj.extractText()
for j in search(query, tld="co.in", num=10, stop=10, pause=2):
print(j) #I want to print this
pdfFileObj.close()
return instance
【问题讨论】:
-
你可以把所有的东西移到
get_context_data,这样你就可以把你想打印的东西传递给模板 -
先生怎么样? .我不知道
标签: python django django-models django-views django-templates