2016-11-21 49 views
0

我有一個Django模型,我正在嘗試在我的Django管理員中執行類似操作。根據條件顯示django管理模型的不同詳細名稱

from django.contrib.auth.models import User 

class Patient(models.Model): 
    id = models.AutoField(primary_key=True) 
    patient_ID = models.ForeignKey(PatientProfile) 
    temp = models.CharField(max_length=10, blank=True, editable=True) 
    pulse = models.CharField(max_length=10, blank=True, editable=True) 

    class Meta: 
     if user.is_superuser:            
      verbose_name = "Doctor Consulting" 
      verbose_name_plural = "Doctor Consulting"   

     else:                  
      verbose_name = "Patients Details" 
      verbose_name_plural = "Patients Details" 

但是這不起作用。我已經在我的管理員中註冊了該模型。 我得到這樣的錯誤;

如果user.is_superuser: NameError用戶沒有被定義

任何幫助將不勝感激。謝謝

+2

Python區分大小寫。 'user =/= User' – Nf4r

+2

即使你解決了這個錯誤,我不認爲你可以這樣做,因爲你沒有涉及到的實例 - 永遠。這可能是您應該在管理頁面 – Sayse

+0

@ Sayse Aaah上做的事情,我可能需要向管理模板添加一些代碼才能做我想做的事情。我會試試看看。 @ Nf4r,我會看看我目前的代碼,並糾正錯誤 'user =/= User' 謝謝。 –

回答

0

經過一週的研究,我發現了Django中的代理模型,這些代理模型可以被賦予元冗餘名稱。因此,我繼續註冊不同的代理模型(對於相同的父模型),然後根據用戶組給他們提供不同的詳細名稱。像這樣;現在

class Patient(models.Model): 
    id = models.AutoField(primary_key=True) 
    patient_ID = models.ForeignKey(PatientProfile) 
    temp = models.CharField(max_length=10, blank=True, editable=True) 
    pulse = models.CharField(max_length=10, blank=True, editable=True) 

class Meta:            
     verbose_name = "Doctor Consulting" 
     verbose_name_plural = "Doctor Consulting"   


class PatientProxy(Patient): 
class Meta: 
    proxy = True 
    verbose_name = "Nurse Consulting" 
    verbose_name_plural = "Nurse Consulting" 

在Django管理我可以選擇哪些用戶可以看到哪些冗長的名字雖然是同一型號。我希望這有助於某一天。

相關問題