Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在html表格中显示django模型的一部分_Python_Django - Fatal编程技术网

Python 在html表格中显示django模型的一部分

Python 在html表格中显示django模型的一部分,python,django,Python,Django,如何在HTML模板中仅显示Django模型的某些列? 还有:如何对其中一个记录执行函数?(金额)? 现在我正在显示一整张模型表,如下所示: mymodels.py class Tabela(models.Model): block_id = models.CharField(max_length=64) timestamp = models.DateTimeField() type = models.CharField(max_length=32) link = models.CharFie

如何在HTML模板中仅显示Django模型的某些列? 还有:如何对其中一个记录执行函数?(金额)? 现在我正在显示一整张模型表,如下所示:

my
models.py

class Tabela(models.Model):
block_id = models.CharField(max_length=64)
timestamp = models.DateTimeField()
type =  models.CharField(max_length=32)
link =  models.CharField(max_length=64)
link_as_account =  models.CharField(max_length=100)
account =  models.CharField(max_length=100)
amount =  models.CharField(max_length=64)

def __str__(self):
    return self.block_id
def search_results(request):
model = Tabela
query_addresse = request.GET.get('addressee', None)
query_hash = request.GET.get('hash', None)

if not query_hash and not query_addresse and request.method == 'GET':
    return render(request, 'nanosite/index.html', {})

if query_hash and request.method == 'GET':
    if query_addresse:
        result = Tabela.objects.filter(account=query_addresse, block_id=query_hash)
    else:
        result = Tabela.objects.filter(block_id=query_hash)
    field_names = [f.name for f in model._meta.get_fields()]
    data = [[getattr(ins, name) for name in field_names]
            for ins in result]

elif query_addresse and request.method == 'GET':
    result = Tabela.objects.filter(account=query_addresse)
    field_names = [f.name for f in model._meta.get_fields()]
    data = [[getattr(ins, name) for name in field_names]
            for ins in result]
return render(request, 'nanosite/index.html', {'field_names': field_names, 'data': data})
我的
视图.py

class Tabela(models.Model):
block_id = models.CharField(max_length=64)
timestamp = models.DateTimeField()
type =  models.CharField(max_length=32)
link =  models.CharField(max_length=64)
link_as_account =  models.CharField(max_length=100)
account =  models.CharField(max_length=100)
amount =  models.CharField(max_length=64)

def __str__(self):
    return self.block_id
def search_results(request):
model = Tabela
query_addresse = request.GET.get('addressee', None)
query_hash = request.GET.get('hash', None)

if not query_hash and not query_addresse and request.method == 'GET':
    return render(request, 'nanosite/index.html', {})

if query_hash and request.method == 'GET':
    if query_addresse:
        result = Tabela.objects.filter(account=query_addresse, block_id=query_hash)
    else:
        result = Tabela.objects.filter(block_id=query_hash)
    field_names = [f.name for f in model._meta.get_fields()]
    data = [[getattr(ins, name) for name in field_names]
            for ins in result]

elif query_addresse and request.method == 'GET':
    result = Tabela.objects.filter(account=query_addresse)
    field_names = [f.name for f in model._meta.get_fields()]
    data = [[getattr(ins, name) for name in field_names]
            for ins in result]
return render(request, 'nanosite/index.html', {'field_names': field_names, 'data': data})
我的
index.html

        <div id="bottomhalf" class="table-responsive">
        <table class="table table-sm table-dark table-hover">
            <thead class="thead-light">
                {% for head in field_names %}
                   <th scope="col">{{ head }}</th>
                {% endfor %}
            </thead>
            <tbody>
                {% for row in data %}
                    <tr scope="row">
                        {% for cell in row %}
                            <td>{{ cell }}</td>
                        {% endfor %}
                    </tr>
                {% endfor %}
            </tbody>
        </table>
    </div>

{字段_names%}中的头为%
{{head}}
{%endfor%}
{数据%中的行为%1}
{第%行中的单元格为%1}
{{cell}}
{%endfor%}
{%endfor%}
我想做的是在html中只显示
块id
时间戳
帐户
金额
。我尝试过不同的方法,比如只使用视图的结果部分,而不使用字段名和数据,但当然不起作用


我的另一个问题是,如何修改字段
amount
,并对其执行一个操作,使其显示在模板中,如amound除以某个数字,前面有一个$符号(例如,如果amount=1488除以124,显示为“$12”)?

将选择要显示的对象的查询集
qs
传递到模板,并在其上迭代以生成表格:

{% for obj in qs %}
    <tr>
        <td> {{obj.block_id}} </td>
        <!-- etc ... -->
    </tr>
{% endfor %} 
然后可以在模板中运行内部循环

<tr>
{% for name in selected_field_names %}
   <td> {{obj|attr:name}} </td>
{% endfor %}
</tr>
并参考模板中的
{{obj.fully\u amount}

<tr>
{% for name in selected_field_names %}
   <td> {{obj|attr:name}} </td>
{% endfor %}
</tr>