2016-09-20 2 views
0

このWebサイトの長時間のlurkerが、私は最終的にコミュニティに参加することに決めました。Django 1.8のデータベースへのhtmlコードの呼び出し

私はいくつかのコードについて簡単に質問しています。今年は私の大学がジャーナリスト部門のウェブサイトを開発するために就職しました。ウェブサイトはDjango 1.8、Python 2、それに付属するものを使って別の学生が前年に構築していました。私はこれらの言語についてまともな金額を知っていました。私は何時間もかけてさまざまな方法をテストすることをたくさん学んできました。しかし、私が永遠に研究してきたことに悩まされていることが1つあります。

基本的に私のウェブサイトでは、記事のページごとに異なる「セクション」があります。これらの記事には多くの特質があります。 1つの形質を「セクション」と呼び、このセクションにはページの名前があります。したがって、たとえば:

1ページの名前は "look"です。私は自分のコードを呼び出して、私のfeatured_articlesをすべて表示することができます。しかし、私はセクションの名前が "見た目"に等しい記事だけを表示しようとしています。

ここは私の現在のコードです。何か案は?私は多くのことを試しましたが、正しく動作させることができません。 if文、if文、別のHTMLプロセス、djangoの別のページなど...

ありがとうございました!

+0

このテンプレートを呼び出すビュー関数はどこですか?セクションが 'look'と一致するところで結果をフィルタリングしたい場合は、内部でそれを行う方が良いでしょう。あなたがテンプレート内でそれをやりたいのであれば、djangoは条件付きで構築されています。https://docs.djangoproject.com/en/1.10/ref/templates/builtins/#if –

答えて

0

私は理解しているように、あなただけのif文を追加する必要があります。

{% for article, section in featured_articles %} 
{% if section.name == 'look' %} 
<div class="media panel panel-default"> 
    <div class="panel-body"> 
     <div class="media-left"> 
      <a href="articles/{{ article.url }}"> 
       <img class="media-object thumbnail-featured" 
        src="{{ article.image }}"> 
      </a> 
     </div> 
     <div class="media-body"> 
      <a href="articles/{{ article.url }}"> 
       <h3 class="media-heading">{{ article.title }}</h3> 
      </a> 


       <!-- TODO figure out how to iterate through the authors field, manytomany --> 
       {% for contributor in article.authors.all %} 
       <p><a href="/{{ section.url }}">{{ section.name }}</a> | 
        <a href="/contributors/{{ contributor.twitter }}">{{   contributor }}</a> </p> 
        {% endfor %} 

          <p>{{article.preview}}</p> 
     </div> 
    </div> 
</div> 
{% endif %} 
{% endfor %} 
+0

ありがとうございます!これは私が今必要としているものです。私は似たようなことをしようとしていたが、何らかの理由でクリックしていなかった...しかし、これはうまくいくので、ありがとう! –

1

全体的に、それはないような良いアイデアです。すべてのデータをテンプレートエンジンに送信し、そこでフィルタリングを行っていますか?

ビュー関数/ビュークラスでフィルタリングし、そのデータをテンプレート変数内に戻してフロントエンドでレンダリングするのはなぜですか?

def detail(request, poll_id):  
    filtered_data = .......objects.get(name='look') 
    return render(request, 'polls/detail.html', {'look_data': filtered_data}) 

{% for article, section in look_data %} 
<div class="media panel panel-default"> 
    .... blah blah blah 
</div> 
{% endfor %} 
+0

それは私が最終的にやりたいことです。私の前のプログラマーは別の方法でサイトを設定していますので、私は一時的に以下のZulfugarの答えを使用しています。しかし、ウェブサイトが立ち上がったら、私はいくつかのことを変えてあなたのアドバイスを使いたいと思っています。ありがとうございました!! –

関連する問題