Python django的“我的模板”中未正确显示数据
如果有人能帮我弄清楚如何修复html表,并让它看起来像第二张图片一样棒的话,我需要帮助来弄清楚如何以一种给我带来问题的方式设置html表 *旁注:我正在使用Django 首先,我有三个模型,我将在这个视图/模板中使用它们。它们被称为图纸、尺寸、检验规格值,我的尺寸模型有一个名为图纸id的forgien键链接到图纸,我的检验规格值模型有一个链接到尺寸的外键 这是我的观点Python django的“我的模板”中未正确显示数据,python,html,django,Python,Html,Django,如果有人能帮我弄清楚如何修复html表,并让它看起来像第二张图片一样棒的话,我需要帮助来弄清楚如何以一种给我带来问题的方式设置html表 *旁注:我正在使用Django 首先,我有三个模型,我将在这个视图/模板中使用它们。它们被称为图纸、尺寸、检验规格值,我的尺寸模型有一个名为图纸id的forgien键链接到图纸,我的检验规格值模型有一个链接到尺寸的外键 这是我的观点 @login_required def shipping(request, id): sheet_data = Shee
@login_required
def shipping(request, id):
sheet_data = Sheet.objects.get(pk=id)
work_order = sheet_data.work_order
customer_data = Customer.objects.get(id=sheet_data.customer_id)
customer_name = customer_data.customer_name
title_head = 'Shipping-%s' % sheet_data.work_order
complete_data = Sheet.objects.raw("""select s.id, s.work_order, d.target, i.reading, d.description, i.serial_number from app_sheet s left join app_dimension d on s.id = d.sheet_id
left join app_inspection_vals i on d.id = i.dimension_id""")
for c_d in complete_data:
dim_description = Dimension.objects.filter(sheet_id=c_d.id).values_list('description', flat=True).distinct()
dim_id = Dimension.objects.filter(sheet_id=c_d.id)[:1]
for d_i in dim_id:
dim_data = Inspection_vals.objects.filter(dimension_id=d_i.id)
sample_size = dim_data
return render(request, 'app/shipping.html',
{
'work_order': work_order,
'sample_size': sample_size,
'customer_name': customer_name,
'title': title_head,
'complete_data': complete_data,
'dim_description': dim_description,
})
这是我的模型
class Sheet(models.Model):
objects = SheetManager()
create_date = models.DateField()
updated_date = models.DateField()
customer_name = models.CharField(max_length=255)
part_number = models.CharField(max_length=255)
part_revision = models.CharField(max_length=255)
work_order = models.CharField(max_length=255)
purchase_order = models.CharField(max_length=255)
sample_size = models.IntegerField()
sample_scheme = models.CharField(max_length=255)
overide_scheme = models.IntegerField()
template = models.IntegerField()
sample_schem_percent = models.IntegerField()
critical_dimensions = models.IntegerField()
closed = models.IntegerField()
serial_index = models.CharField(max_length=255)
drawing_number = models.CharField(max_length=255)
drawing_revision = models.CharField(max_length=255)
heat_number = models.CharField(max_length=255)
note = models.CharField(max_length=255)
valc = models.CharField(max_length=255)
class Dimension(models.Model):
description = models.CharField(max_length=255)
style = models.CharField(max_length=255)
created_at = models.DateField()
updated_at = models.DateField()
target = models.IntegerField()
upper_limit = models.IntegerField()
lower_limit = models.IntegerField()
inspection_tool = models.CharField(max_length=255)
critical = models.IntegerField()
units = models.CharField(max_length=255)
metric = models.CharField(max_length=255)
target_strings = models.CharField(max_length=255)
ref_dim_id = models.IntegerField()
nested_number = models.IntegerField()
met_upper = models.IntegerField()
met_lower = models.IntegerField()
valc = models.CharField(max_length=255)
sheet = models.ForeignKey(Sheet, on_delete=models.CASCADE, default=DEFAULT_FOREIGN_KEY)
class Inspection_vals(models.Model):
created_at = models.DateField()
updated_at = models.DateField()
reading = models.IntegerField(null=True)
reading2 = models.IntegerField(null=True)
reading3 = models.IntegerField(null=True)
reading4 = models.IntegerField(null=True)
state = models.CharField(max_length=255)
state2 = models.CharField(max_length=255)
state3 = models.CharField(max_length=255)
state4 = models.CharField(max_length=255)
approved_by = models.CharField(max_length=255)
approved_at = models.DateField(null=True, blank=True)
dimension = models.ForeignKey(Dimension, on_delete=models.CASCADE, default=DEFAULT_FOREIGN_KEY)
serial_number = models.IntegerField(default=1)
最后,这里是我的模板,我想做的是让我的标题是序列号。这将基于我的图纸模型上的样本大小,所以假设我有24个样本大小,显示20个水平行。接下来,我将在右侧显示尺寸说明,样本大小为24,我将有两个尺寸链接到图纸模型,每次都会更改。最后,我想把每个检验值和尺寸的读数放在表格的其余部分-因此,如果我有两个尺寸,样本尺寸为24,我应该有48个检验值,我想对相应的尺寸和序列号使用正确的读数。这是我到目前为止得到的--
序列号
{样本大小%中ss的百分比}
{{ss.serial_number}}
{%endfor%}
{完整数据%中r_c的百分比}
{{r_c.reading}}
{%endfor%}
{dim_description.all%}
{{desc}}
{%endfor%}
这是它现在的样子
这是我想要的样子
我的数据看起来就是这样
回答建议后修复仍然没有显示我希望的显示方式
<div class="container">
<div class="row">
<div>
<table >
<thead>
<tr>
<th>Serial Number</th>
{% for ss in sample_size %}
<th>{{ ss.serial_number }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for desc in dim_description.all %}
<tr>
<td> {{ desc }}</td>
</tr>
{% for r_c in complete_data %}
<td> {{ r_c.reading }} </td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
序列号
{样本大小%中ss的百分比}
{{ss.serial_number}}
{%endfor%}
{dim_description.all%}
{{desc}}
{完整数据%中r_c的百分比}
{{r_c.reading}}
{%endfor%}
{%endfor%}
它现在的样子
使用@Michael Platt建议更新代码
<div class="container">
<div class="row">
<div>
<table >
<thead>
<tr>
<th>Serial Number</th>
{% for ss in sample_size %}
<th>{{ ss.serial_number }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for desc in dim_description.all %}
<tr>
<td> {{ desc }}</td>
{% for r_c in complete_data %}
<td> {{ r_c.reading }} </td>
{% endfor %}
{% endfor %}
</tr>
</tbody>
</table>
</div>
</div>
</div>
序列号
{样本大小%中ss的百分比}
{{ss.serial_number}}
{%endfor%}
{dim_description.all%}
{{desc}}
{完整数据%中r_c的百分比}
{{r_c.reading}}
{%endfor%}
{%endfor%}
@Michael Platt帮助解决了html问题,现在我希望能够将读取内容一分为二,这样24个将放在内部od行,下一个24个将放在外部od行
好的,我知道这是你的问题:
<tbody>
{% for desc in dim_description.all %}
<tr>
<td> {{ desc }}</td>
{% for r_c in complete_data %}
<td> {{ r_c.reading }} </td>
{% endfor %}
{% endfor %}
</tr>
</tbody>
{dim_description.all%}
{{desc}}
{完整数据%中r_c的百分比}
{{r_c.reading}}
{%endfor%}
{%endfor%}
在
标记中的第二个{%endfor%}
之前,您有一个额外的
。我在上面做了修改,所以我认为它会提供您想要的正确设计。如果它不让我知道,但在我这方面测试有点困难,仅仅因为我没有启动并运行应用程序:-)
干杯,在我尝试帮助之前,我只是想确保我正确理解这一点。桌子的头还好吧?您现在想看到的是第一列的第一行“内部OD 3”,然后所有后续数据都在各自的列中,对吗?如果读取的数据与我的维度模型中的描述相匹配,这是正确的@Michael Platt。现在我需要做的是将行对半,这样一半显示在第一行内部od上,另一半显示在外部od上。我将更新我的问题,以向您展示它的外观现在@MichaelPlattok,考虑到您当前的数据结构,这将有点困难。我想说,您需要重新考虑如何将数据存储在传入的变量中,因为在中途剪切一个循环以放入另一行,然后再次拾取可能会很困难。也许可以考虑实现一个字典,把一半的数据从<代码>完成数据>代码>到<代码>内部代码> /代码>键,而另一半则用<代码> OutyOOD KEY键@斯诺曼08好吧,我会考虑一下,同时我会考虑一下你的答案,因为你帮我整理了html:)@Michael PlattSure thing。如果您开始使用不同的解决方案并陷入困境,请随时与我联系,我将很高兴看到您所拥有的一切。干杯
<tbody>
{% for desc in dim_description.all %}
<tr>
<td> {{ desc }}</td>
{% for r_c in complete_data %}
<td> {{ r_c.reading }} </td>
{% endfor %}
{% endfor %}
</tr>
</tbody>