Python django的“我的模板”中未正确显示数据

Python django的“我的模板”中未正确显示数据,python,html,django,Python,Html,Django,如果有人能帮我弄清楚如何修复html表,并让它看起来像第二张图片一样棒的话,我需要帮助来弄清楚如何以一种给我带来问题的方式设置html表 *旁注:我正在使用Django 首先,我有三个模型,我将在这个视图/模板中使用它们。它们被称为图纸、尺寸、检验规格值,我的尺寸模型有一个名为图纸id的forgien键链接到图纸,我的检验规格值模型有一个链接到尺寸的外键 这是我的观点 @login_required def shipping(request, id): sheet_data = Shee

如果有人能帮我弄清楚如何修复html表,并让它看起来像第二张图片一样棒的话,我需要帮助来弄清楚如何以一种给我带来问题的方式设置html表

*旁注:我正在使用Django

首先,我有三个模型,我将在这个视图/模板中使用它们。它们被称为图纸、尺寸、检验规格值,我的尺寸模型有一个名为图纸id的forgien键链接到图纸,我的检验规格值模型有一个链接到尺寸的外键

这是我的观点

@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>