0

私は自分のポートフォリオを作成するために Django を使用しており、簡単なページ マネージャーを作成することができました。問題は、私が望むように動作しないことです:

  1. ページを作成します。
  2. 私が与えたコンテンツをロードします。
  3. jQuery を使用すると、そのコンテンツのみを (フォーマットされた HTML として) ロードします。
  4. リロードしたり、別のページに移動したりせずに表示されます。

問題は、最後の 2 つの手順にあります。ビューとテンプレートを 1 つだけ読み込むことができません。

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 %}

フィルタリングする必要があることはわかっていますが、方法がわかりません。

私はあなたの助けに感謝します。

4

2 に答える 2

1

あなたは明らかにpaginasすべてのページを取得しています。

1ページを取得するには、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を使用する方がさらに良いでしょう

于 2012-07-16T15:00:50.130 に答える
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 に答える