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

2024-04-29 06:09:55 发布

您现在位置:Python中文网/ 问答频道 /正文

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

但这是行不通的。我已经在我的管理员注册了这个模型。 我犯了这样的错误

如果超级用户是: 名称错误用户未定义

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


Tags: djangoname模型trueverbosemodelsconsultinglength
1条回答
网友
1楼 · 发布于 2024-04-29 06:09:55

经过一周的研究,我发现了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 admin中,我可以选择哪个用户可以看到哪个详细名称,尽管它是同一个型号。我希望有一天这会对某人有所帮助。在

相关问题 更多 >