首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模板在django中不呈现

模板在django中不呈现
EN

Stack Overflow用户
提问于 2019-06-13 14:57:09
回答 2查看 32关注 0票数 0

我正在尝试制作一个发票接收,它从django数据库中获取数据,并将该数据呈现在模板上。数据被存储,并可以在终端中显示,数据在该模型中存储良好。我已经做了几次了,但是我不明白为什么数据没有在我的模板中呈现。

这是我的Models.py

代码语言:javascript
复制
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:

代码语言:javascript
复制
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模板:

代码语言:javascript
复制
<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>

在模板中看不到数据,而是字段为空。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-13 15:43:33

这一点:

代码语言:javascript
复制
return render(request, 'classroom/suppliers/showLR.html', {LR:'LR'})

是错误的-您使用模型实例作为键,使用文字字符串'LR'作为值,因此在模板上下文中没有名为"LR“的内容。你想要的是

代码语言:javascript
复制
return render(request, 'classroom/suppliers/showLR.html', {'LR':LR})

注意,这一次我们使用字符串作为键,使用实例作为值。

顺便说一句,你不应该将你的实例命名为与类相同的名称--这充其量是令人困惑的,并且可能导致意想不到的行为,因为它在当前作用域的其余部分中隐藏了类。哦,是的:context_object_name = 'LR'部分是完全没用的。

票数 0
EN

Stack Overflow用户

发布于 2019-06-13 15:09:00

PrintLR方法的更改

代码语言:javascript
复制
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'})

首先,确保它返回一个对象。

代码语言:javascript
复制
qwe = get_object_or_404(LR, lr_quiz_id=pk)

然后在模板中

代码语言:javascript
复制
<td>{{ qwe.lr_consignor_contact_phone }}</td>
<td>{{ qwe.lr_declared }}</td>
<td>{{ qwe.lr_consignee_name }}</td>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56574926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档