0

我一直在使用 Django 来制作我的作品集,并且我已经成功地制作了一个简单的页面管理器。问题是,它不能按照我希望的方式工作:

  1. 我创建页面。
  2. 它加载我给它的内容。
  3. 使用 jQuery,我只加载该内容(作为格式化的 HTML)。
  4. 它无需重新加载或移动到另一个页面即可显示自己。

问题在于最后两个步骤,我无法让视图和模板仅加载一个。

视图.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")

模板.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 %}

我知道我应该过滤它,但我不知道如何。

我感谢您的帮助。

4

2 回答 2

1

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
于 2012-07-16T14:33:27.977 回答
1

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

考虑使用 slug 以确保编码正确也很重要。页面ID会更好用

于 2012-07-16T15:00:50.130 回答