2017-09-26 1 views
0

안녕하세요, 저는 HTML 작업을 시도하고 있지만 뭔가를 얻지 못하는 것 같습니다. (URL을 웹 사이트에 링크 : team_select) 프로젝트를 연결하기위한HTML의 django 태그 렌더링이 작동하지 않습니다.

{% 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은 다음과 같다

내 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 }) 

이 가정된다 . 나는 다음과 같은 오류가 발생합니다 : 것은이 하지만 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 -'{% if 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 함수를 호출 할 수 있습니다. 실제로, 어떤 기능도이 것만이 아닙니다. 점 (.) 연산자가 장고 템플릿에서 어떻게 작동하는지에 대한 내용은 behind the scenes을 읽어보십시오.

+0

기본적으로 뷰의 함수 호출에는 괄호가 필요하지 않습니다. :) – MarkJL

+0

{% else %} 부분을 시도했지만 작동하지 않았습니다. 팀이 연결되어있을 때 세부 정보 페이지로 다시 돌아 오기 위해 렌더링 기능을 호출했기 때문이라고 생각하십니까? – Ben2pop

+0

"else 절이 작동하지 않는다"는 것은 무엇을 의미합니까? 'else' 절은'project.team_id' **가 있고 ** project.team_id.members.count'가 0 이외의 것 (즉, 0보다 큰 경우)으로 실행됩니다. –

관련 문제