2016-11-03 184 views
-2

用於上下文:的Django - INT()參數必須是字符串或數字,而不是「患者」

  • 我有2個表,用戶(其是AUTH_USER表的副本,以小的修改)和患者
  • 我想在不通過PK參數的情況下製作DetailView,因此我的用戶無權訪問他的ID
  • 患者的主鍵是User中的外鍵「患者」,所以我可以鏈接這兩個表格

我的帕蒂經濟需求模型:

class Patients(models.Model): 
    id = models.IntegerField(primary_key=True) 
    # And other keys not importants 

我views.py:

class ProfilView(LoginRequiredMixin, generic.DetailView): 
    login_url = '/membres/login/' 
    #model = Patients 
    template_name = 'membres/profil.html' 
    def get_object(self): 
     user_loggin = get_object_or_404(User, pk=self.request.user.id) 
     return Patients.objects.get(pk=user_loggin.patients) 

我覺得我回到了錯事,但互聯網上搜索後很多,我不知道如何我想使這個工作,感謝您的幫助。

回答

1

查詢pk需要一個整數對象而不是Patients對象。

您應指定相關patients對象的id

Patients.objects.get(pk=user_loggin.patients.id) 
#           ^^^ 
+0

它不應該是'patients.pk'? – Sagar

+0

@Sagar'id'也是主鍵 –

+0

謝謝,它完美的工作! (我是django的新手,開始時很困難) – Julien

相關問題