Django:在数据库

时间:2017-03-05 21:54:48

标签: html django postgresql django-views django-orm

我想在我的Postgresql数据库中保存HTML代码,这样我就可以直接将此代码作为HttpResponse发送,而不是提供静态HTML文件。我确实将它保存在数据库中,但是后续错误仍然存​​在。 Error after returning html code

执行此任务的正确方法是什么?

Edit1:views.py文件的代码

def index(request):

    index_object = StaticWebPage.objects.get(page_title='index')

    return HttpResponse(
        request,
        index_object.page_content
    )

1 个答案:

答案 0 :(得分:2)

您是否正在尝试制作模板后端,以便将模板保留在数据库中而不是文件系统中?如果是这样的话:https://docs.djangoproject.com/en/1.10/topics/templates/#custom-backends

我可以看到,在StaticWebPage记录中你有一个Django模板,渲染你需要处理的是一个字符串,并像渲染字符串一样渲染。

from django.template import Template, Context

def index(request):
    index_object = StaticWebPage.objects.get(page_title='index')
    template = Template(index_object.page_content)
    return HttpResponse(
        content=template.render(Context({})),  # use the context or not
        content_type=None,
        status=200,
        reason=None,
        charset=None,
    )

(在Django 1.10中)django.http.response.HttpResponse不会将request作为第一个参数(我添加了参考所需的参数)。