【问题标题】:HTML Not Picking Up Bootstrap & Won't CombineHTML 不支持 Bootstrap 并且不会合并
【发布时间】:2022-01-17 10:58:41
【问题描述】:

我正在创建一个页面,允许用户过滤数据集、点击搜索并查看下面的结果更新。每当我将 week 函数更新为 pick_list.html 而不是 filter_list.html 时,我都会收到以下错误。我的 filter_list.html 没有显示来自我的应用程序其余部分的任何引导视觉效果或颜色,只是一个简单的列表。 pick_list.html 显示一个搜索按钮,但没有搜索字段和零数据。

为什么我如此费力地将这两者结合起来?

views.py:

def week(request):
    #orders = Pick.objects.get(id=pk_test)
    orders = Pick.objects.all()
    #orders = week.order_set.all()
    myFilter = PickFilter(request.GET, queryset=orders)
    orders = myFilter.qs
    context = {'week':week, 'orders':orders, 'myFilter':myFilter}
    return render(request, 'app/filter_list.html',context)

models.py

class Pick(models.Model):

    submitter = models.CharField(max_length=50, verbose_name='Submitter', null=True, blank=True)
    week = models.CharField(max_length=50, verbose_name='Week', null=True, blank=True)
    name = models.CharField(max_length=50, verbose_name='Name', null=True, blank=True)
    photo = models.CharField(max_length=50, verbose_name='Photo', null=True, blank=True)
    #photo = models.ImageField(upload_to="media", max_length=500, verbose_name='Photo', null=True, blank=True)
    hometown = models.CharField(max_length=50, verbose_name='Hometown', null=True, blank=True)
    age = models.IntegerField(verbose_name='Age', null=True, blank=True)
    progress = models.IntegerField(verbose_name='Progress', null=True, blank=True)
    occupation = models.CharField(max_length=50, verbose_name='Occupation', null=True, blank=True)
    elim_week = models.CharField(max_length=50, verbose_name='Week Eliminated', null=True, blank=True)
    rank = OrderField(verbose_name='Rank', null=True, blank=True)

    def __str__(self):
        return self.name

    def get_fields(self):
        return [(field.verbose_name, field.value_from_object(self)) for field in self.__class__._meta.fields]
    
    def get_absolute_url(self):
        return reverse('app:pick-update', kwargs={'pk': self.pk})

    class Meta:

pick_list.html:

{% extends 'base.html' %}
{% load cms_tags %}
{% block title %} {{ title }} · {{ block.super }} {% endblock title %}
{% block content %}    

<div style="font-size:24px">
  {{ title }}
</div>

<div style="font-size:14px; margin-bottom:15px">
  Click on the arrows on the right of each contestant and drag them up or down to reorder them based on how far you think they are going to go. 
</div>

<form method="get">
  {{ myFilter.form }}
  <button type="submit">Search</button>
</form>
<ul>

<table class="table table-hover" id="table-ajax" style="background-color: white;">
  <thead  style="background-color: #de5246; color:white; border-bottom:white">
    <tr>
      {% comment %} <th></th> {% endcomment %}
      <th style="width: 50px; text-align: center;"></th>
      <th>{{ object_list|verbose_name:'field:name' }}</th>
      <th>{{ object_list|verbose_name:'field:hometown' }}</th>
      <th>{{ object_list|verbose_name:'field:occupation' }}</th>
      <th>{{ object_list|verbose_name:'field:age' }}</th>
      <th>Progress</th>
      <th style="width: 160px; text-align: center;">Rank</th>
    </tr>
  </thead>
  <tbody class="order" data-url="{% url 'cms:reorder' model_name %}">
    {% include 'app/filter_list.html' %}
  </tbody>
</table>


{% endblock %}

filter_list.html:

{% load static %}
{% load cms_tags %}



{% for order in orders %}

<tr id="{{ order.id }}">
    <td><img src="http://127.0.0.1:8000/media/files/{{ order.photo }}" width="50"/></td>
    <td><a href="" title="Leads" style="text-decoration: none">{{ order.name }}</a></td>
    <td>{{ order.hometown }}</td>
    <td>{{ order.occupation }}</td>
    <td>{{ order.age }}</td>
    <td>
        <div class="progress">
            <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="{{ order.age }}" aria-valuemin="0" aria-valuemax="100" style="width: 75%"></div>
        </div>
    </td>
    <td style="text-align: center;">
        <a href="" class="btn btn-sm border-0 reorder" title="Reorder">
            <i class="fa fa-sort text-secondary"></i></a>
    </td>
</tr>
{% empty %}
<tr class="table-warning nosort">
    <td colspan="100%" class="text-center"><small class="text-muted">No {{ model_verbose_name_plural|lower }}</small>
    </td>
</tr>
{% endfor %}
<tr class="table-light table-sm nosort">
    <td colspan="100%"><small class="text-muted">Total rows: {{ orders.count }}</small></td>
</tr>

错误:

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/picks/filter/

Django Version: 3.2.6
Python Version: 3.8.7
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'account',
 'cms',
 'app',
 'widget_tweaks',
 'django_cleanup',
 'bootstrap_datepicker_plus']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']


Template error:
In template C:\Users\New User\Downloads\django-modal-ajax-crud-main\django-modal-ajax-crud-main\templates\base.html, error at line 0
   'str' object has no attribute '_meta'

视图的回溯错误:

context 
{'myFilter': <app.filters.PickFilter object at 0x04CC9FB8>,
 'orders': <QuerySet [<Pick: Claire>, <Pick: Elizabeth>, <Pick: Cassidy>, <Pick: Eliza>, <Pick: Daria>, <Pick: Ency>, <Pick: Gabby>, <Pick: Genevieve>, <Pick: Hailey>, <Pick: Hunter>, <Pick: Hunter>]>}
myFilter    
<app.filters.PickFilter object at 0x04CC9FB8>
orders  
<QuerySet [<Pick: Claire>, <Pick: Elizabeth>, <Pick: Cassidy>, <Pick: Eliza>, <Pick: Daria>, <Pick: Ency>, <Pick: Gabby>, <Pick: Genevieve>, <Pick: Hailey>, <Pick: Hunter>, <Pick: Hunter>]>
request 
<WSGIRequest: GET '/picks/filter/'>

【问题讨论】:

    标签: python html django


    【解决方案1】:

    pick_list.html 显示一个搜索按钮,但没有搜索字段和 零数据。

    这可能是因为当您在pick_list.html 模板中包含filter_list.html 时,变量orders 为None。所以当你到达filter_list.html的for循环时,它不会执行,所以它不会返回任何结果。

    我的 filter_list.html 没有显示任何引导视觉效果或颜色 我的应用程序的其余部分,只是一个简单的列表。

    这可能是因为在您的week 视图中您直接返回filter_list.html,并且在该模板内部您没有扩展base.html,因此没有应用引导样式。

    'str' 对象没有属性 '_meta'

    当您尝试对字符串而不是真实模型实例执行模型操作时,Django 中会发生此错误。尝试打印视图上下文,看看你传递的是模型还是字符串。

    那么,你怎么能解决这个问题?试试这个教程:https://openfolder.sh/django-tutorial-as-you-type-search-with-ajax

    【讨论】:

    • 从 str 对象错误中添加了视图上下文,它看起来像所有模型 - 有什么想法吗?
    • “这可能是因为当你在你的pick_list.html模板中包含filter_list.html时,变量orders是None” - 你能解释一下为什么会这样吗?
    • 你能分享一下呈现pick_list.html的另一个视图吗?
    猜你喜欢
    • 2016-12-11
    • 1970-01-01
    • 2021-09-17
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多