我正在尝试制作一个发票接收,它从django数据库中获取数据,并将该数据呈现在模板上。数据被存储,并可以在终端中显示,数据在该模型中存储良好。我已经做了几次了,但是我不明白为什么数据没有在我的模板中呈现。
这是我的Models.py
class LR(models.Model):
lr_quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE, related_name='quiz_lr')
lr_no = models.IntegerField(default=0)
lr_date = models.DateTimeField(max_length=255, default=now)
lr_billingparty = models.CharField(max_length=255, default=0) # supplier company name foreign key
invoice_no = models.IntegerField(default=0)
lr_declared = models.IntegerField(default=0)
ewaybill_no = models.IntegerField(default=0)
lr_quantity = models.IntegerField(default=0) # quantity
lr_weight = models.IntegerField(default=0) # weight
lr_invoice_date = models.DateTimeField(max_length=255, default=now)
lr_item_name = models.CharField(max_length=255, default=0) # said to contain
lr_consignor_name = models.CharField(max_length=255, default=0) # shipper company name
lr_consignor_address = models.CharField(max_length=255, default=0) # shipper company name
lr_consignor_contact_name = models.CharField(max_length=255, default=0) # shipper company name
lr_consignor_contact_phone = models.CharField(max_length=255, default=0) # shipper company name
lr_consignee_name = models.CharField(max_length=255, default=0) # shipper company name
lr_consignee_address = models.CharField(max_length=255, default=0) # shipper company name
lr_consignee_contact_name = models.CharField(max_length=255, default=0) # shipper company name
lr_consignee_contact_phone = models.CharField(max_length=255, default=0) # shipper company name
vehicle_no = models.CharField(max_length=255, default=0)
lr_vehicle_type = models.IntegerField(default=0)
driver_name = models.CharField(max_length=255, default=0)
driver_no = models.IntegerField(default=0)
def str (self):
return self.name这是我的views.py:
def PrintLR (request, pk):
LR = get_object_or_404(LR, lr_quiz_id=pk)
context_object_name = 'LR'
template_name = 'classroom/suppliers/showLR.html'
return render(request, 'classroom/suppliers/showLR.html', {LR:'LR'})这是我的HTML模板:
<tr>
<th>CNOTE NO</th>
<th>BOOKING DATE</th>
<th>BILLING PARTY</th>
</tr>
<tr>
<td>{{ LR.lr_consignor_contact_phone }}</td>
<td>{{ LR.lr_declared }}</td>
<td>{{ LR.lr_consignee_name }}</td>
</tr>在模板中看不到数据,而是字段为空。
发布于 2019-06-13 15:43:33
这一点:
return render(request, 'classroom/suppliers/showLR.html', {LR:'LR'})是错误的-您使用模型实例作为键,使用文字字符串'LR'作为值,因此在模板上下文中没有名为"LR“的内容。你想要的是
return render(request, 'classroom/suppliers/showLR.html', {'LR':LR})注意,这一次我们使用字符串作为键,使用实例作为值。
顺便说一句,你不应该将你的实例命名为与类相同的名称--这充其量是令人困惑的,并且可能导致意想不到的行为,因为它在当前作用域的其余部分中隐藏了类。哦,是的:context_object_name = 'LR'部分是完全没用的。
发布于 2019-06-13 15:09:00
PrintLR方法的更改
def PrintLR (request, pk):
qwe = get_object_or_404(LR, lr_quiz_id=pk)
template_name = 'classroom/suppliers/showLR.html'
return render(request, 'classroom/suppliers/showLR.html', {qwe:'qwe'})首先,确保它返回一个对象。
qwe = get_object_or_404(LR, lr_quiz_id=pk)然后在模板中
<td>{{ qwe.lr_consignor_contact_phone }}</td>
<td>{{ qwe.lr_declared }}</td>
<td>{{ qwe.lr_consignee_name }}</td>https://stackoverflow.com/questions/56574926
复制相似问题