你好Django Pros在那里!
是否有可能获得模型的pk,这不是模型的直接外键?但外键模型的外键?
我的模特:
class Patient(models.Model):
patientID = models.CharField(max_length=200, unique=True, help_text='Insert PatientID')
class Examination(models.Model):
number_of_examination = models.IntegerField(choices=EXA_Choices)
patient = models.ForeignKey(Patient, on_delete=models.CASCADE)
date_of_examination = models.DateField(auto_now=False, auto_now_add=False, help_text='YYYY-MM-DD')
class AbsoluteValue(models.Model):
examination = models.ForeignKey(Examination, on_delete=models.CASCADE)
attr1 = models.BooleanField(default=False)
attr2 = models.BooleanField(default=False)
attr3 = models.BooleanField(default=False)
我想定义AbsoluteValue类的get_absolute_url。它应该重定向到患者详细信息页面。因此,它需要患者类的PK。
我的尝试:
def get_absolute_url(self):
return reverse('member:detail', kwargs={'pk': self.examination__patient_id})
错误表示没有要重定向到的网址。所以我的查询不起作用,或者我不应该在这个函数中查询。
答案 0 :(得分:0)
您似乎想要self.examination.patient_id
而不是self.examination__patient_id
。 Django ORM使用双下划线表示法,例如:在filter()
。对于Python中的常规属性访问,请使用点。
def get_absolute_url(self):
return reverse('member:detail', kwargs={'pk': self.examination.patient_id})