2016-12-20 9 views
0

おはようございます。 私はPython-Flask APIでPoliticians Wikiを開発しています。 名前が示すように、プラットフォームがWikipediaのように動作し、フラグが不正なコンテンツを報告する機能があります。 政治家提案組織役割:私は旗という名前の余分なテーブルを作成したと同様に、すべての私のwebappクラスに関連する関数を作成するには 。基本的に、誤解を招くような情報のためにフラグを立てることができるすべて。Jinja2ルート指定

これらのテーブルを1対多の関係でリンクしました。 1人の政治家は0を持っている.. *国旗 1の提案は、0を持っている.. *国旗、など。

を問題は、私は1つのページ内のすべての情報を印刷しようとすると、私はクラスでフラグを分離するものが必要です各クラスの個々のページごとに異なるルートを取得します。

{% for flag in flags %} 
          <tr> 
           <td>{{flag.flagtitle}}</td> 
           <td>{{flag.flagreason}}</td> 
           <td></td> 
           <td><a href="/politician/{{ flag.politician }}"><span class="glyphicon glyphicon-pencil"></span></a></td> 
           <td><form action ="/delete_flag/{{ flag.idflag }}" method="POST"> 
        <button><span class="glyphicon glyphicon-remove" type="submit" name="remove_levels" value="delete" class="fa fa-times"></span> delete</button> 
       </form></td> 
          </tr> 
         {% endfor %} 

ここで私は政治家がトピックにフラグを立てるのを見ることができ、その政治家のフラグ情報のルートしか取得できないのですか?

適切なクラスルートを取得するためのフラグを解析するにはどうすればよいですか?私はルートをリファクタリングし、フラグテーブルにのClassID(PoliticianIDなど)を追加し、その後、私は本当に困惑していると私は実際に何を知らない

/API /旗/ ID

行くべき最高のアプローチ..

良いアイデア? (私はすべてのフラグ付きコンテンツを参照)

管理コントローラ

@users_blueprint.route("/admin", methods=["GET", "POST"]) 
@login_required 
def admin(): 
    form = SignupForm() 
    flags = db.session.query(Flag).all() 
    users = db.session.query(User).all() 
    if (current_user.get_urole()) == "admin": 
     if request.method == "POST": 
      if form.validate() == False: 
       return render_template('admin.html', form=form) 
      else: 
       newuser = User(form.first_name.data, form.last_name.data, form.email.data, form.password.data, 
           "member") 
       db.session.add(newuser) 
       db.session.commit() 
       flash(u'Welcome to POLEX', 'info') 
       return redirect(url_for('home.home')) 

     elif request.method == "GET": 
      return render_template("admin.html", users=users, form=form, flags=flags) 
    else: 
     return redirect(url_for('home.home')) 

答えて

0

私が正しくあなたの質問を理解していれば、あなたはタイプによってどのグループにフラグを求めています。最も簡単な方法は、コントローラーのタイプによってフラグを分離し、その情報をテンプレートに渡すことです。

flags_by_type = {flag_type: [] for flag_type in flag_types} 
for flag in flags: 
    flags_by_type[flag.type].append(flag) 
render(..., flags=flags_by_type) 

次に、テンプレートでは、フラグタイプをループオーバーして、ネストされた方法で各タイプのフラグをループすることができます。

関連する問題