根据条件显示django管理模型的不同详细名称

时间:2016-11-21 10:32:44

标签: python django django-models django-admin

我有一个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用户

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

经过一周的研究,我发现了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管理员中,我可以选择哪个用户可以查看哪个详细名称,尽管它是相同的模型。我希望有一天能帮到别人。