Python 根据页面ID在Django中加载页面

Python 根据页面ID在Django中加载页面,python,django,django-templates,django-views,Python,Django,Django Templates,Django Views,我一直在与Django合作,以制作我的投资组合,并设法制作了一个简单的页面管理器。问题是,它无法按我希望的方式工作: 我创建页面 它加载了我给它的内容 使用jQuery,我只加载该内容(作为格式化的HTML) 它不需要重新加载或移动到另一个页面即可显示自己 问题在于最后两个步骤,我无法让视图和模板只加载一个 Views.py: def paginas(request, title): get_page = Page.objects.all() # I can't think of a w

我一直在与Django合作,以制作我的投资组合,并设法制作了一个简单的页面管理器。问题是,它无法按我希望的方式工作:

  • 我创建页面
  • 它加载了我给它的内容
  • 使用jQuery,我只加载该内容(作为格式化的HTML)
  • 它不需要重新加载或移动到另一个页面即可显示自己
  • 问题在于最后两个步骤,我无法让视图和模板只加载一个

    Views.py:

    def paginas(request, title):
        get_page = Page.objects.all() # I can't think of a way to make a proper filter
        return render_to_response('template.html', {'get_page': get_page}, context_instance=RequestContext(request), mimetype="text/html")
    
    Template.html:

    {% if get_page %}
        {% for page in get_page %}
                {{ page.content|safe }}
                <p>Full path is {{ request.get_full_path }} and page id is {{ page.id }}</p>
        {% endfor %}
    {% else %}
        <p>Nothing.</p>
    {% endif %}
    
    {%if get_page%}
    {get_page%中的页的%s}
    {{page.content | safe}}
    完整路径为{request.get_Full_path}},页面id为{{page.id}}

    {%endfor%} {%else%} 没什么

    {%endif%}
    我知道我应该过滤它,但我不知道如何过滤

    感谢您的帮助。

    tbh,django非常清楚地解释了URL、参数和表单,但这里有一个想法:

    url(r'^/someapp/(?P<page_id>\d+)/$', paginas),
    
    
    def paginas(request, **kwargs):
        id = kwargs.pop('page_id')
        page = get_object_or_404(Page, id=id)
        # etcetera
    
    
    class Page(models.Model):
        # regular stuff
        def get_absolute_url(self):
            return "/someapp/%d/" % self.id
    
    url(r'^/someapp/(?P\d+/$),paginas),
    def paginas(请求,**kwargs):
    id=kwargs.pop('page_id'))
    页面=获取对象或404(页面,id=id)
    #等等
    类页面(models.Model):
    #普通的东西
    def get_绝对_url(自身):
    返回“/someapp/%d/%self.id”
    
    paginas
    中,您显然得到了所有页面

    要获得一个页面,可以使用
    get
    功能

    def paginas(request, title):
       try:
         your_page = Page.objects.get(title=title)
       except Page.DoesNotExist:
         # error no page for that title
         # could use built in get_object_or_404 as ArgsKwargs suggested
    

    同样重要的是考虑使用蛞蝓来确保编码是正确的。页面id最好使用

    我认为它还将url args kwargs传递给请求函数,因此这也是有效的
    def paginas(request,page_id=None):…
    。另一方面,您的示例是错误的。request.GET将url中的数据存储在
    标记之后,因此在
    /someapp/?page\u id=
    的情况下是正确的。如果我错了,请纠正我。仅仅接受
    page\u id
    作为第二个参数不是更明确吗?通过
    **kwargs
    访问它有什么好处?谢谢你的想法,我找到了一条出路。这是一个基于URL构造的问题。@dm03514 well import这说明显式比隐式好,但是我喜欢dynamics kwargs提供的,当然这个例子不需要任何:-)我已经得到了我的答案,但我从来没有想过例外。提出404错误将非常有用。谢谢。get_object_或_404是一个django函数,我没有编造:-)是的
    get_object_或_404
    是正确的方式,我只是想展示
    get
    函数