Django 它不在 HTML 上打印

Django its not printing on HTML

提问人:Yukki 提问时间:11/16/2023 更新时间:11/16/2023 访问量:37

问:

我试图理解为什么 Django 它没有在我的 HTML 页面上打印,用户 db 打印得很好,但我的票证 db 没有被打印,它实际上创建了分配信息的空间,如图像所示,但它没有填充信息在上面。

views.py


#The actual page
def dashboard(request):
    ticket = Userdb.objects.filter(userid = request.user.id)
    context = {'ticket': ticket}
    return render(request,'dashboard/home.html', context)

#Data in the ticket
def ticketr(request):
    data = {}
    if request.method == 'POST':
        if request.POST.get('nomctt') and request.POST.get('tiposerv') and request.POST.get('areaserv') and request.POST.get('tickettext'):
            table = Userdb()
            table.nomctt = request.POST.get('nomctt')
            table.numctt = request.POST.get('numctt')
            table.tiposerv = request.POST.get('tiposerv')
            table.areaserv = request.POST.get('areaserv')
            table.tickettext = request.POST.get('tickettext')
            table.userid = request.user
            table.save()
            data['msg'] = 'Ticket registrado!'
            data['class'] = 'alert-success'    
            return render(request,'dashboard/home.html', data)
        else:
         data['msg'] = 'Preencha todos os campos!'
         data['class'] = 'alert-danger'
        return render(request,'dashboard/ticket.html',data)

首页.html

{% block content %}
    {% if request.user.is_authenticated %}
    <nav class="navbar">
    <div class="navbar__container">
        <a href="/" id="navbar__logo"><img src="{% static 'images/logo.png' %}" style="width:180px;height:100px;"></a>
        <div class="navbar__toggle" id="mobile-menu">
            <span class="bar"></span>
            <span class="bar"></span>
            <span class="bar"></span>
        </div>
        <ul class="navbar__menu">
            <ul class="navbar__menu">
              
            <li class="navbar__item">
                <a href="/" class="navbar__links">
                    {{ user.username }}
                </a>
            </li>
            
            <li class="navbar__btn">
                <a href="/loginv" class="button">
                    Logar
                </a>
            </li>
        </ul>
    </div>
</nav>


    <a href="/dashboard/ticket/">Abra um Ticket</a>
        </div>
        <br>
        <div class="container bootdey">  
        <div class="col-md-12">  
            <div class="col-md-4">      
                <div class="portlet light profile-sidebar-portlet bordered">
                    <div class="profile-usertitle">
                        <div class="profile-usertitle-name"> {{ user.username }} </div>
                        <div class="profile-usertitle-job"> Developer </div>
                    </div>
                    
                    <div class="profile-usermenu">
                        <ul class="nav">
                            <li class="active">
                                <a href="#">
                                    <i class="icon-home"></i> Ticket List </a>
                            </li>
                            <li>
                                <a href="#">
                                    <i class="icon-info"></i> Configurations </a>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="col-md-8"> 
                <div class="portlet light bordered">
                    <div class="portlet-title tabbable-line">
                        <div class="caption caption-md">
                            <i class="icon-globe theme-font hide"></i>
                            <span class="caption-subject font-blue-madison bold uppercase">Ticket List</span>
                        </div>
                    </div>
                    <div class="portlet-body">
                        <table class="table">
                            <thead>
                                <tr>
                                    <th>#</th>
                                    <th>Column heading</th>
                                    <th>Column heading</th>
                                    <th>Column heading</th>
                                </tr>
                            </thead>
                            <tbody>
                                {% for Userdb in ticket %}
                                <tr class="active">
                                    <th scope="row">{{ticket.ticketid}}</th>
                                    <td>{{ticket.nomctt}}</td>
                                    <td>{{ticket.numctt}}</td>
                                    <td>{{ticket.tickettext}}</td>
                                </tr>
                                {% endfor %}
                               
    {% else %}
        Você não tem acesso a essa área!
    {% endif %}
{% endblock %}
    

实际页面

Page rendered

如果需要更多信息,请发表评论,我将提供

蟒蛇 HTML Django

评论

0赞 John Gordon 11/16/2023
{% for Userdb in ticket %}变量在哪里定义?ticket
0赞 Yukki 11/16/2023
这里?def dashboard(request): ticket = Userdb.objects.filter(userid = request.user.id) context = {'ticket': ticket} return render(request,'dashboard/home.html', context)
0赞 John Gordon 11/16/2023
哦,我正在查看第二个视图函数。我忽略了第一个。
0赞 John Gordon 11/16/2023
但我认为问题仍然出在变量上。从视图代码传递时,变量是 的结果,因此它实际上是一个票证列表。变量本身没有属性等。{{ticket}}ticket.filter()ticket.ticketid
0赞 Yukki 11/16/2023
所以,我改成了,它起作用了,但我忍不住觉得它会引起问题,我认为这与它无关,但是在我创建票证时进行了一些其他更改后,它在数据库中保存了 3 次,我真的丢失了 rn xD{{ ticket.ticketid }}{{ Userdb.ticketid }}

答:

2赞 John Gordon 11/16/2023 #1

在视图函数中,我会将变量重命名为(复数),因此它实际上是一个票证列表。拥有与预期内容实际匹配的变量名称确实很有帮助:tickettickets

def dashboard(request):
    tickets = Userdb.objects.filter(userid = request.user.id)
    context = {'tickets': tickets}
    return render(request,'dashboard/home.html', context)

但真正的问题是 html 模板假设是每个单独的票证,而不是列表本身:ticket

{% for Userdb in ticket %}
<tr class="active">
    <th scope="row">{{ticket.ticketid}}</th>
    <td>{{ticket.nomctt}}</td>
    <td>{{ticket.numctt}}</td>
    <td>{{ticket.tickettext}}</td>
</tr>
{% endfor %}

假设您在上面进行了建议的更改,您可以只将循环标签更改为:for

{% for ticket in tickets %}

或者,如果您不想进行该更改,则可以更改为所有其他类似的变量。{{ticket.ticketid}}{{Userdb.ticketid}}

评论

0赞 Yukki 11/16/2023
刚刚这样做了,它工作得很好,我不知道我可以这样做,我想它会在旅途中创建变量?无论如何,感谢您的帮助,很抱歉占用您的时间{% for ticket in tickets %}ticket
0赞 John Gordon 11/16/2023
@Yukki 是的,循环会自动创建变量。for item in mylistitem