django模板不会加载css和javascript文件

时间:2014-11-04 00:11:34

标签: css django django-forms django-views

我正在django中创建一个应用程序,一切都很好,除了一个模板。所有模板加载javascript和css文件有任何问题,但有一个模板不加载任何CSS或JS文件。 当我输入此模板的视图时,我犯了一个拼写错误,在我修复它之后,模板将不会加载任何css或JS文件

更新:视图定义缩进

@permission_required('prov.views.configView',login_url='/login/')
def MasterFormView(request):
    form = MasterForm(request.POST or None)
    if request.method == 'POST':
       idp = request.POST['id_proveedor']
       a = request.POST['anio']
       m = request.POST['mes']
       id = Proveedor.objects.get(id_proveedor=idp)
       obj,created = Master.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
       if form.is_valid(): 
          objdetrec,createddetrec = DetalleRecepcion.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objdetcar,createddetcar = DetalleCargaArchivo.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objdetcon,createddetcon = DetalleConci.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objenvcon,createdenvcon = EnvioConci.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objcer,createdcer = Certificado.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objentcert,createdentcert = EntCertificado.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objacepta,createdacepta = AceptCertificado.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          objrepro,createdrepro = Reproceso.objects.get_or_create(id_proveedor=id,anio=a,mes=m)
          return HttpResponseRedirect('/monitor/')

       if not created:
          obj.id_proveedor = id
          obj.anio = a
          obj.mes = m
          #-----------------------------
          objdetrec.id_proveedor = id
          objdetrec.anio = a
          objdetrec.mes = m
          #----------------------------
          objdetcar.id_proveedor = id
          objdetcar.anio = a
          objdetcar.mes = m
          #----------------------------
          objdetcon.id_proveedor = id
          objdetcon.anio = a
          objdetcon.mes = m
          #----------------------------
          objenvcon.id_proveedor = id
          objenvcon.anio = a
          objenvcon.mes = m
          #----------------------------
          objcer.id_proveedor = id
          objcer.anio = a
          objcer.mes = m
          #----------------------------
          objentcert.id_proveedor = id
          objentcert.anio = a
          objentcert.mes = m
          #----------------------------
          objacepta.id_proveedor = id
          objacepta.anio = a
          objacepta.mes = m
          #----------------------------
          objrepro.id_proveedor = id
          objrepro.anio = a
          objrepro.mes = m
          #----------------------------
          obj.save()
          objdetrec.save()
          objdetcar.save()
          objdetcon.save()
          objenvcon.save()
          objcer.save()
          objentcert.save()
          objacepta.ave()
          objrepro.save()
          return HttpResponseRedirect('/monitor/')
    return render_to_response('masterform.html',
                              {'form':form})

形式:

class MasterForm(forms.ModelForm):
      def __init__(self,*args,**kwargs):
       super(MasterForm,self).__init__(*args,**kwargs)
       self.helper = FormHelper(self)
       self.helper.layout.append(Submit('save','Grabar'))
       self.helper.layout = Layout(
        Fieldset('',
                 'id_proveedor',
                 'anio',
                 'mes',
                 Submit('save','Grabar'),
                )
       )

      class Meta:
        model = Master

URL:

 url(r'^masterform/$', 'prov.views.MasterFormView',name='masterform'),

表单更新指定的所有模型并且工作正常,但没有样式或JS函数。

我不知道为什么所有其他模板都可以加载css文件而这个表单没有 任何人都有同样的问题或任何想法如何解决这个问题。

P.D。:在firebug中,错误是“PAGE NOT FOUND”

更新添加html模板的代码 masterform.html

{% extends 'base.html' %}
{% load crispy_forms_tags %}

{% block content %}
<div class="container">
<div class="col-sm-4"
<form method='POST' action='' class='form'>
   <div class="form-group">
        {% csrf_token %}
        {% crispy form  %}
   </div>
</form>
</div>
</div>
{% endblock %}

base.html文件

<!DOCTYPE html>
<html lang="en">
  <head>
   <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">
    <title>Proveedores de Contenido</title>

    <!-- Bootstrap core CSS -->
     <link href="{{STATIC_URL|default:"/static/"}}admin/css/bootstrap.min.css" rel="stylesheet">
     <link href="{{STATIC_URL|default:"/static/"}}admin/css/custom.css" rel="stylesheet">
     <link href="{{STATIC_URL|default:"/static/"}}admin/css/jquery.dataTables.css" rel="stylesheet">
     <link href="{{STATIC_URL|default:"/static/"}}admin/css/customtable.css" rel="stylesheet">
     <link href="{{STATIC_URL|default:"/static/"}}admin/css/bootstrap-theme.min.css" rel="stylesheet">

     <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
     <script src="{{STATIC_URL|default:"/static/"}}admin/js/bootstrap.js"></script>
     <!-- script type="text/javascript" src="/static/admin/js/jquery-1.11.1.min.js"></script -->
     <script src="{{STATIC_URL|default:"/static/"}}admin/js/jquery.dataTables.js"></script>
     <script src="{{STATIC_URL|default:"/static/"}}admin/js/dataTables.bootstrap.js"></script>
  </head>

 <body>
{% block content %}{% endblock %}
{% include 'footer.html'%}

  </body>
</html>

当我创建viwe时,表单和模板工作正常并加载每个css和js文件。 后来我做了一个改变,不小心错了一些字。在我修复拼写错误后,模板将不会加载我的css和js文件。 但形式工作正常,只有没有风格。 我正在考虑重写所有(查看,表单,htmltemplates和更改网址),看看是否有一些损坏的文件或配置

1 个答案:

答案 0 :(得分:0)

您似乎将自己重定向到masterform.html。这是加载css和javascript的地方。

修改

由于您没有正确的设置,无法找到这些文件:

对于app: STATIC_URL = '/static/'

对于产品:STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), '/var/www/static/', )

将这两个设置添加到您的设置文件中,不要忘记加载它们: {% load staticfiles %}

位于所有html文件的顶部。

然后您不再需要{{STATIC_URL | default}}只使用{{ STATIC_URL}}

Manage static files

<强>建议:

制作{%block exta_head %} {% endblock %} 在您的主模板中,以便您的扩展模板可以添加自己的文件。