2017-11-26 5 views
0

은 내가 추측 간단한 질문이 있습니다 특정 프로젝트., 장고

team_member_count = Project.objects.get(id = id).team_id.members.count() 

쿼리는 같은 URL을 사용하여 프로젝트 자세히보기위한 것입니다 : 쉘에서 localhost/website/project/141/ 내 쿼리 Project.objects.get입니다 (ID = 141) .team_id.members.count()

하지만보기에 내가 얻을 :

TypeError: int() argument must be a string, a bytes-like object or a number, not 'builtin_function_or_method' 

내보기 다음 (chart.js에 대한 데이터를 검색)

class ChartData(APIView): 

    authentication_classes = [] 
    permission_classes = [] 

    def get(self, request, format=None, *args, **kwargs): 
     user_count = MyUser.objects.all().count() 
     project_count = Project.objects.all().count() 
     team_member_count = Project.objects.get(id = id).team_id.members.count() 
     labels = ["Users", "Projects", "Team_number", "Green", "Purple", "Orange"] 
     default_items = [user_count, project_count,team_member_count,28,12,32] 
     data = { 
      "labels":labels, 
      "default":default_items, 
     } 
     return Response(data) 
입니다 6,

모델 :

class Team(models.Model): 
    team_name = models.CharField(max_length=100, default = '') 
    team_hr_admin = models.ForeignKey(MyUser, blank=True, null=True) 
    members = models.ManyToManyField(MyUser, related_name="members") 

    def __str__(self): 
     return self.team_name 


class Project(models.Model): 
    name = models.CharField(max_length=250) 
    team_id = models.ForeignKey(Team, blank=True, null=True) 
    project_hr_admin = models.ForeignKey('registration.MyUser', blank=True, null=True) 
    candidat_answers = models.ManyToManyField('survey.response') 

    def get_absolute_url(self): 
     return reverse('website:ProjectDetails', kwargs = {'pk' : self.pk}) 

    def __str__(self): 
     return self.name 

URL 패턴

app_name = 'website' 
urlpatterns = [ 
    url(r'^hr_index/$', views.HRIndex.as_view(), name='hr_index'), 
    url(r'^candidate_index/$', views.CandidateIndex.as_view(),name='candidate_index'), 
    url(r'^employee_index/$', views.EmployeeIndex.as_view(),name='employee_index'), 
    url(r'^addproject/$', views.ProjectCreate.as_view(), name='add_project'), 
    url(r'^addteam/$', views.TeamCreate.as_view(), name='add_team'), 
    url(r'^linkteam/$', views.LinkTeam.as_view(), name='link_team'), 
    url(r'^linkteam2/$', views.TeamSelect, name='team_select'), 
    url(r'^project/(?P<pk>[0-9]+)/$',views.ProjectDetailView.as_view(), name='ProjectDetails'), 
    url(r'^project/(?P<pk>[0-9]+)/api/chart/data/$', views.ChartData.as_view(), name='chartdata'), 

] 
+0

관련 모델 (프로젝트, 팀, 회원)을 모두 표시하십시오. –

+0

또한 URL 패턴. –

+0

모델과 URL을 추가했습니다. – Ben2pop

답변

2

당신은 당신의 get 방법에 id라는 지역 변수가없는; 파이썬은 당신이 글로벌 내장형 id() 함수를 참조하고 있다고 가정하고 있습니다. 따라서 오류가 발생합니다.

귀하의 URL에 따르면 pk이라는 키워드 인수를 포착합니다. 따라서 kwargs에서 가져와야합니다.

Project.objects.get(id=kwargs['pk'])...