我正在构建一个涉及人员列表和他们所做交易的项目。每个人将拥有自己的个人资料,交易金额为x。使用其他模型的名称查询Django模型
我的数据库,到目前为止,包括两种型号:
之一来定义一个人
class Person (models.Model):
"""
A person
"""
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, blank=True)
def __unicode__(self):
return self.name
一到每个人提出的交易相关联。
class Purchase (models.Model):
"""
A purchase for each person
"""
person_id = models.ForeignKey(Person)
purchase_description = models.CharField(max_length=1000, blank=True)
我确定这是一个多对一的数据库关系,因为有些人可能会做同一事务。
现在,我可以为每个人制作页面,在标题中显示他们的名字。我想要做的是显示对该特定人员进行的交易。如何才能做到这一点?以下是我的view.py文件的样子:
from django.shortcuts import render
from .models import Person, Purchase
def load_person(request, name):
person = Person.objects.get(name=name)
# name = Purchase.objects.filter(purchase)
context = {
'name': name
# 'purchase': purchase
}
return render(request, 'pages/person.html', context)
以下是与我的url.py文件中的查询关联的网址。
url(r'^project/(?P<name>[-\w]+)/$', views.load_person),
使用'person_id'作为您的字段名称,在您的数据库中,您将获得'person_id_id',因为django使用'Person'对象查询并将其映射到对象的pk(或id)。所以当你创建一个模型类时,你应该使用(在这种情况下)'person',它将在你的数据库中反映为'person_id'。 – Gocht
感谢您的建议。我想知道为什么我在错误消息中看到person_id_id。 – AldoTheApache