2016-09-01 108 views
0

我想检索与我的ToolTransaction模型上的外键的PartyID相关的名字和姓氏字段。我有一个我用来存储数据的mysql数据库。我的目标是让名字出现在适当的交易中,而不是PartyID。我能够显示所有活动交易,但我无法将他们的第一个和最后一个名称显示出来。我的一些代码可能对我来说有点不可靠,因此试图解决这个问题,所以我的道歉。Django外键关系和显示模板

型号:

class Tool(models.Model): 
ToolID=models.CharField(max_length=100, primary_key = True, unique=True, db_column=b'ToolID') 
Quantity=models.IntegerField(null=False) 
Location=models.CharField(max_length=100, null=False) 
CategoryID=models.IntegerField(null=True) 
Deleted=models.BooleanField(default=0) 

objects=models.Manager() 

class Meta: 
     managed=True 
     db_table='Tool' 

def __unicode__(self): 
    return self.ToolID 

def get_absolute_url(self): 
    return reverse("ToolSearch:toolSearchResults", kwargs={"pk": self.ToolID}) 

class Party(models.Model): 
PartyID=models.AutoField(primary_key=True, db_column=b'PartyID') 
FirstName=models.CharField(max_length=100, null=False) 
LastName=models.CharField(max_length=100, null=False) 
PhoneNumber=models.CharField(max_length=25, null=False) 
Organization=models.CharField(max_length=100, null=True) 
Deleted=models.BooleanField(default=0) 

objects=models.Manager() 

class Meta: 
    managed=True 
    db_table='Party' 

def __unicode__(self): 
    return str(self.PartyID) 

def get_absolute_url(self): 
    return reverse("ToolSearch:borrowerUpdate", kwargs={"pk": self.PartyID}) 

class ToolTransaction(models.Model): 
CheckOutID=models.AutoField(primary_key=True) 
ToolID=models.ForeignKey(Tool, db_column='ToolID', on_delete=models.CASCADE, related_name='ToolID_fk',) 
PartyID=models.ForeignKey(Party, db_column='PartyID', on_delete=models.CASCADE, related_name='PartyID_fk',) 
Quantity=models.IntegerField(null=False) 
CheckOutDate=models.DateField(null=False, default=datetime.datetime.now) 
CheckInDate=models.DateField(null=True) 
Deleted=models.BooleanField(default=0) 
objects=ActiveTransactionManager() 
#objects=models.Manager() 

class Meta: 
    managed=True 
    db_table='ToolTransaction' 
    ordering=('CheckOutID',) 

def __unicode__(self): 
    return str(self.CheckOutID) 

def get_absolute_url(self): 
    return reverse("ToolSearch:toolCheckin", kwargs={"pk": self.CheckOutID}) 

查看:

def tool_transaction_search(request): 
instance=ToolTransaction.objects.all() 
ToolTransaction.objects.filter(PartyID=instance.PartyID).select_related() 
    context={ 
     "Transactions": instance, 
    } 
    return render(request, "tooltransactionsearch.html", context) 

模板:

{% for tran in Transactions %} 
      <h5> 
       CheckOutID: <a href="{{ tran.get_absolute_url }}"> {{tran.CheckOutID}} </a> <br> 
       Name: {{tran.Party.FirstName}} {{tran.LastName}} <br> 
       PartyID: {{tran.PartyID}} <br> 
       ToolID: {{tran.ToolID}} <br> 
       CheckOutDate: {{tran.CheckOutDate}} <br> 
       CheckInDate: {{tran.CheckInDate}} <br> <br> 
      </h5> 
      {% endfor %} 

任何帮助将不胜感激!

回答

1

类ToolTransaction的PartyID属性实际上是党的一个实例,因此您可以通过这种方式获得名字和姓氏:

Name: {{tran.PartyID.FirstName}} {{tran.PartyID.LastName}}