【发布时间】:2015-01-11 10:30:18
【问题描述】:
我很难在 Django 1.7 中使用外键。供参考:
models.py 如下所示:
from django.db import models
class Transaction(models.Model):
transaction_num = models.IntegerField(primary_key=True)
customer_name = models.CharField(max_length=255, blank=True)
transaction_date = models.DateField(blank=True, null=True)
phone = models.CharField(max_length=255, blank=True)
est_pickup_date = models.DateField(blank=True, null=True)
class Meta:
db_table = 'transaction'
def __str__(self): # __unicode__ on Python 2
return str(self.transaction_num)
class Item(models.Model):
itemid = models.IntegerField(primary_key=True)
transaction_num = models.ForeignKey(Transaction, db_column='transaction_num')
desc = models.CharField(max_length=255)
picked_up_on = models.DateField(blank=True, null=True)
class Meta:
db_table = 'item'
def __str__(self): # __unicode__ on Python 2
return str(self.itemid)
class TransactionNote(models.Model):
noteid = models.IntegerField(primary_key=True)
transaction_num = models.ForeignKey(Transaction, db_column='transaction_num')
content = models.CharField(max_length=255)
class Meta:
db_table = 'transaction_note'
def __str__(self): # __unicode__ on Python 2
return str(self.noteid)
views.py 如下所示:
from django.http import HttpResponse
from django.shortcuts import render
from pickup.models import Transaction, Item, TransactionNote
# Current Inventory
def history(request):
t = Transaction.objects.all().order_by('-transaction_date', '-transaction_num')
return render(request, 'pickup/history.html', { 'transaction_list': t})
...和 history.html 的相关部分,一个循环内的表,我想在其中包括附加到特定事务的所有相关项目的计数:
{% for transaction in transaction_list %}
[...]
<td>{{ transaction.customer_name }}</td>
<td>{{ transaction.transaction_date }}</td>
<td>{{ transaction.est_pickup_date }}</td>
<td>{{ transaction.phone }}</td>
<td>{{ transaction.itemid.count }}</td>
[...]
{% endfor %}
除了最后一行之外,一切正常。我不知道如何加入 Transaction 和 Item 表,以便我可以在模板内使用相关的项目对象(特别是描述或它们的计数)。任何帮助将不胜感激。
【问题讨论】:
标签: python mysql django foreign-keys