首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不使用Ajax和rest框架呈现数据

不使用Ajax和rest框架呈现数据
EN

Stack Overflow用户
提问于 2018-01-04 23:00:15
回答 1查看 317关注 0票数 0

我在我的django应用程序中使用rest框架来访问一些数据。

由于某些原因,我无法访问它。我没有错误消息,但数据没有显示。

我的观点是。

class TeamChartData(APIView):
    queryset = MyUser.objects.all()
    serializer_class = MyUserSerializer, #ProjectSerializer
    permission_classes = []
    http_method_names = ['get',]


    def get_serializer_class(self):
        return self.serializer_class

def get(self, request, format=None, *args, **kwargs):
        cohesiveness_score = get_team_cohesivenss_score(self)         
        data = {
        "cohesiveness_score":cohesiveness_score[0],
    }
    return Response(data)

我的Html:

{% extends 'base.html' %}
{% load static %}
{% block body %}
<div class="container paddingtop80 marginbottom30">
<div class="row">
{% if project.has_member_responses %}
  <div class="col-8">
    <div class="jumbotron greenback">
      <h4>Welcome to the Project test "{{  project.name }}" Detail page</h4>
    </div>
  </div>
  <div class="col-4">
    <div class="jumbotron greenback">
      <div class="inner-score">
        <h6>Team Score</h6>
        <h4>{{cohesiveness_score}}</h4>
      </div>

    </div>

  </div>

    {% else %}
      <div class="col">
        <div class="jumbotron greenback">
          <h4>Welcome to the Project "{{  project.name }}" Detail page</h4>
        </div>
      </div>
    {%endif%}
</div>

<!-- case 1 = if there is not team created or linked -->
    {% if project.team_id == None  %}
      {% include "projectdetailtemp/noteamcreated.html" %}<
<!-- case 2 = if there is a team created but no team members -->
    {% elif project.team_id and project.team_id.members.count == 0 %}
      {% include "projectdetailtemp/teamnomember.html" %}<
<!-- any other situation -->
    {% else %}
      {% include "projectdetailtemp/other.html" %}
    {% endif %}


{% if project.has_member_responses %}
  {% include "survey/team_dashboard.html" %}
{% else %}

  <div class="jumbotron redback">
      We are still waiting for all members to answer the team questionnaire
  </div>

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


<script>
var endpoint = 'api/chart/data2'
$.ajax({
  method: "GET",
  url: endpoint,
  success: function(data){
    console.log(data)
    cohesiveness_score = data.cohesiveness_score
  }
  })
  </script>

当我转到我的端点时,我可以看到我试图访问的数据我猜问题不是来自view.py。我尝试访问的数据是:{{cohesiveness_score}}有人能帮我吗?

编辑:有问题的视图:

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 HttpResponseRedirect(reverse('website:ProjectDetails', kwargs={'pk':obj3.id}))
            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 })

url:

url(r'^project/(?P<pk1>[0-9]+)/linkteam2/$', views.TeamSelect, name='team_select'),

链接:

<a href="{% url 'website:team_select' pk1=project.id %}" class="btn btn-secondary" role="button"><span class="fa fa-link"></span>   Link an existing team</a>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-05 02:30:28

默认情况下,Django rest中的视图呈现类是JSONRenderer。您需要将呈现类定义为HTML和模板名称。在此之后,将以HTML格式呈现yiur数据。

from rest_framework.renderers import TemplateHTMLRenderer

class TeamChartData(APIView):
    queryset = MyUser.objects.all()
    serializer_class = MyUserSerializer, #ProjectSerializer
    permission_classes = []
    http_method_names = ['get',]
    renderer_classes = [TemplateHTMLRenderer]
    template_name = 'template_name.html'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48097945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档