【问题标题】:get_absolute_url with multiple foreign key具有多个外键的 get_absolute_url
【发布时间】:2017-03-08 11:55:56
【问题描述】:

你好 Django 专业人士!

能不能得到一个模型的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。它应该重定向到患者详细信息页面。因此,它需要 Patient 类的 pk。

我的尝试:

def get_absolute_url(self):
    return reverse('member:detail', kwargs={'pk': self.examination__patient_id})

错误表明没有要重定向到的 URL。所以我的查询不起作用,或者我不应该在这个函数中查询。

【问题讨论】:

    标签: python django url django-models foreign-keys


    【解决方案1】:

    您似乎想要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})
    

    【讨论】:

    • 非常感谢!作品!你能帮我解决另一个 URL 问题吗?
    • 如果您有单独的问题,请提出一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多