如何在Django中查看pdf文件?

时间:2018-11-25 14:08:31

标签: python django

注意:

  1. 我的模型表由id字段和File字段组成,将是pdf。
  2. 我正在使用django admin将数据插入模型中(我没有自定义上传表单)
  3. 我正在尝试在浏览器中查看pdf(因为它通常在chrome中打开)。
  4. 我正在尝试通过使用表单在自定义HTML模板中获取ID字段(按用户)来查找文件(请查看下面提到的代码。)
  5. 我将在下面附加urls.py,index.html,views.py,models.py和forms.py代码。请耐心等待,并让我知道问题和解决方案。
  6. 我认为我的代码应该可以工作,但是出现可疑文件操作错误。

urls.py

urlpatterns = [
    path('',views.index),
    path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

views.py

def index(request):
    if request.method == "POST":
        form = Form(request.POST)
        if form.is_valid():
            id=request.POST.get("id")
            ans = query.objects.get(id=id)
            response=ans.repo
            if ans is None:
                return redirect("index.html")
            else:
                #return render (request,"ans.html",{'ans':response})
                return redirect(response)
    else:
        form = Form()
    return render(request,"index.html",{'form':form})

forms.py

class Form(forms.Form):
    id = forms.CharField(label="Report ID", max_length=100)

models.py

class query(models.Model):
    id=models.IntegerField(primary_key=True)
    repo=models.FileField(upload_to='documents/')

index.html

<!-- Search Form -->
        <form id="signup-form" method="POST" action="">
        {% csrf_token %}
            {{form}}
            <input type="submit" value="Check" />
        </form>

1 个答案:

答案 0 :(得分:0)

文件字段的URL在url属性中,因此您需要使用ans.repo.url