我在 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/