Django 下载 excel 文件 return 对象名称而不是 excel 文件
Django downloading excel file return object name instead of excel file
我有一个网站,我们可以在其中下载一个 xl 文件,我的看法如下所示,而不是返回 excel 文件,而是返回带有其中对象名称的文本文件,我该如何解决这个问题
views.py:
def my_view(request):
obj = model.objects.first()
response = HttpResponse(file, content_type='
application/vnd.ms-excel',
)
return response
urls.py:
path('temo/fill',views.my_view,name = 'my-view')
models.py
class Model(BaseModel, SingletonModel):
file = models.FileField(
upload_to='',
validators=[FileExtensionValidator([''])]
)
person_uploaded = models.ForeignKey(
'somemodel',
related_name='s',
null=True,
on_delete=models.SET_NULL,
)
admin.py:
@admin.register(tTemplate)
class TemplateAdmin(admin.ModelAdmin):
list_display = ('file','person_uploaded',)
readonly_fields = ('person_uploaded',)
def save(self, request):
if not self.id:
self.person_uploaded = request.user
super().save()
obj = Plate.objects.first() # this will return you object
在对象中有多个属性,你必须像这样只获取你的文件属性
@api_view(['GET',])
def my_view(request):
obj = Plate.objects.first()
response = HttpResponse(obj.file, content_type='
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
application/vnd.ms-excel')
return response
file = model.objects.first() # here you are returning the entire object
而不是文件,因此您显然会得到对象名称而不是 xl 文件。
最重要的是你的对象中的 xl 文件
我有一个网站,我们可以在其中下载一个 xl 文件,我的看法如下所示,而不是返回 excel 文件,而是返回带有其中对象名称的文本文件,我该如何解决这个问题
views.py:
def my_view(request):
obj = model.objects.first()
response = HttpResponse(file, content_type='
application/vnd.ms-excel',
)
return response
urls.py:
path('temo/fill',views.my_view,name = 'my-view')
models.py
class Model(BaseModel, SingletonModel):
file = models.FileField(
upload_to='',
validators=[FileExtensionValidator([''])]
)
person_uploaded = models.ForeignKey(
'somemodel',
related_name='s',
null=True,
on_delete=models.SET_NULL,
)
admin.py:
@admin.register(tTemplate)
class TemplateAdmin(admin.ModelAdmin):
list_display = ('file','person_uploaded',)
readonly_fields = ('person_uploaded',)
def save(self, request):
if not self.id:
self.person_uploaded = request.user
super().save()
obj = Plate.objects.first() # this will return you object
在对象中有多个属性,你必须像这样只获取你的文件属性
@api_view(['GET',])
def my_view(request):
obj = Plate.objects.first()
response = HttpResponse(obj.file, content_type='
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
application/vnd.ms-excel')
return response
file = model.objects.first() # here you are returning the entire object
而不是文件,因此您显然会得到对象名称而不是 xl 文件。 最重要的是你的对象中的 xl 文件