我正在構建一個涉及人員列表和他們所做交易的項目。每個人將擁有自己的個人資料,交易金額爲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