2017-09-26 8 views
0

こんにちは、私はHTMLを動作させようとしていますが、何か得られないようです。HTMLでdjangoタグをレンダリングできない

私のHTMLは以下の通りです:

{% extends 'base.html' %} 
{% block body %} 
<div class="container"> 
    <div class="jumbotron"> 
    <h2>Welcome to your Project {{ project.name }} Detail page</h2> 
    </div> 

<!-- case 1 = if there is not team created or linked --> 
    {% if project.team_id == None %} 
    <div class="invite-team"> 
     <div class="jumbotron"> 
     <div class="jumbo-text"> 
      <h3>Your project has been created, It is time to link a team or create a new for your project</h3> 
     </div> 
      <div class="jumbo-button"> 
      <a href="{% url 'website:team_select'%}" class="btn btn-default" role="button"><span class="glyphicon glyphicon-link"></span> Link an existing team</a> 
      <a href="{% url 'website:add_team' %}" class="btn btn-success" role="button"><span class="glyphicon glyphicon-plus"></span> Create a new team</a> 
      </div> 
     </div> 

<!-- case 2 = if there is a team created but no team members --> 

{% elif project.team_id and project.team_id.members.count == 0 %} 
<div class="invite-teammembers"> 
    <div class="jumbotron"> 
    <div class="jumbo-text"> 
     <h3>The team {{ project.team_id }} has beed created, we now need to add TeamMembers</h3> 
    </div> 
     <div class="jumbo-button"> 
     <a href="{% url 'registration:team_register3' %}" class="btn btn-success" role="button"><span class="glyphicon glyphicon-plus"></span> Add Team Members</a> 
     </div> 
    </div> 
</div> 

<!-- any other situation --> 
    {% else %} 
    <h1>Youhouu</h1> 

    {% endif %} 
    </div> 
</div> 

{% endblock%} 

プロジェクトリンクするための私の意見:それはすることになっているように私のHTMLレンダリングされていない

def TeamSelect(request): 
    #import pdb; pdb.set_trace() 
    if request.method == "POST": 
     select_form = EditSelectTeam(request.user, request.POST) 
     if select_form.is_valid(): 
      data = select_form.cleaned_data['team_choice'] 
      obj2 = Project.objects.filter(project_hr_admin=request.user) 
      obj3 = obj2.latest('id') 
      if obj3.team_id == None: 
       obj3.team_id = data 
       obj3.save() 
       obj4 = obj3.team_id 
       obj5 = obj4.members.all() 

       for i in obj5: 
        current_site = get_current_site(request) 
        message = render_to_string('acc_join_email.html', { 
         'user': i.first_name, 
         'domain':current_site.domain, 
         }) 
        mail_subject = 'You have been invited to SoftScores.com please LogIn to get access to the app' 
        to_email = i.email 
        email = EmailMessage(mail_subject, message, to=[to_email]) 
        email.send() 
       messages.success(request, 'test') 
       return render(request,'project_details.html') 
      else: 
       print('this project has already a team') 
     else: 
      print('Non Valid form') 

    else: 
     select_form = EditSelectTeam(request.user) 
    return render(request,'link_project.html', 
          {'select_form':select_form }) 

:(team_select URLのウェブサイトにリンクされているが) 。私は次のエラーを取得する:事が しかしproject.team_id.members.count == 0Falseあるproject.team_id.members.count() == 0が真であるシェルを使用している

Could not parse the remainder: '()' from 'project.team_id.members.count()' 

どうすればいいですか? (有効でない)

{% if not project.team_id and project.team_id.members.count == 0 %} 

{% else %}代わりの{% else project.team_id.members.count() > 0 %}へ:へ

+0

0でない場合、 '{{project.team_id.members.count}}'を実行すると値は何ですか? – qbzenker

+0

私はあなたが疑問に思っていることはよく分かりませんが、値は正の整数になります。チーム内のチームメンバーの数を数えています – Ben2pop

+0

OK - '%project.team_id.members | length == 0%} ' - [' length'](https://docs.djangoproject.com/en/1.11/ref/templates/builtins/)フィルタは 'project.team_id.membersの要素数を数えることに注意してください'。 – qbzenker

答えて

3

変更。

countコールの後に()がないことに注意してください。

これは、HTMLテンプレートからcount関数を呼び出す方法です。実際には、どのような機能でも、これだけではありません。ドット(.)演算子がDjangoテンプレート内でどのように動作するかについては、behind the scenesをお読みください。

+0

基本的に、ビューの関数呼び出しには括弧は必要ありません。 :) – MarkJL

+0

{%else%}の部分を試しましたが、動作しませんでした。チームがリンクされているときに、詳細ページに戻るためにレンダリング機能を呼び出しているからだと思いますか? – Ben2pop

+0

"else節は機能していません"とはどういう意味ですか? 'else'節は、' project.team_id' **があり、** project.team_id.members.count'が0以外のもの(つまり、ゼロより大きい)であれば実行されます。 –

関連する問題