python - Django View 查询和外键查找

标签 python mysql django

我在 View 页面中运行 Django 查询 (v1.9) 时遇到问题。我基本上是从 primers 表中检索一条记录(工作正常),然后尝试从“基因”表中检索相应的记录:

模型.py:

class Gene(models.Model):
    GeneName = models.CharField(max_length=10, unique=True)
    ChromosomeNo = models.CharField(max_length=2)

class Primer(models.Model):
    PrimerName = models.CharField(max_length=20, unique=True)
    Gene = models.ForeignKey(Gene)

views.py

def PrimerDetail(request, pk):
    primer_info = get_object_or_404(Primer, pk=pk)
    Gene_info = Gene.objects.get(Gene_id = primer_info.GeneName)

问题似乎出在我对 primer_info.GeneName 的使用上。我得到:

'Primer' object has no attribute 'GeneName'

将其更改为 primer_info.Gene,我得到:

Cannot resolve keyword 'Gene_id' into field. Choices are: ChromosomeLoc, ChromosomeNo, Comments, Disease, Disease_id, GeneName, NoExons, id, primer`

我可以用一个字符串值来代替,而且效果很好。在这种情况下,我应该如何引用作为外键对象的字段?

最佳答案

根据上面的描述,您可以尝试另一种获取 Gene 对象的方法,如下所示。

Gene_info = Gene.objects.get(pk = primer_info.Gene.id)

这将为您提供 Gene 对象的对象,它是 Primer 表中的外键。

关于python - Django View 查询和外键查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36574339/

相关文章:

python - 是否可以部分更改参数值?

Python、Numpy : How to select numpy array with given mask

mysql - 选择用于创建任务管理 Web 应用程序的语言

mysql - DEFINER 可以是角色而不是用户吗?

javascript - 使用按钮更新表格中的特定行

python - Django 模型中的新字段未显示在管理界面或模型表单中

python - 使用 twisted 运行两个网络服务器

python - 在 Python 中对用户提供的字符串运行 .format() 是否安全/可靠?

python - Django反向外键导致重复查询

python - 如何在 CircleCI 2.0 中显式添加项目到 Python 路径?