2014-11-04 72 views
0

我正在Django中创建一个应用程序,除了一个模板,一切都很好。所有的模板加载任何问题的JavaScript和CSS文件,但有一个模板不会加载任何CSS或JS文件。 当我键入此模板的观点我做一个错字错误后,我修复它的模板将不会加载任何CSS或JS文件Django模板将不会加载CSS和JavaScript文件

UPDATE:视图定义缩进 视图

@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(r'^masterform/$', 'prov.views.MasterFormView',name='masterform'), 

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

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

PD:在Firebug的错误是 “找不到网页”

更新增加的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和更改url),看看是否有一些损坏的文件或配置

回答

0

这似乎是你重定向到masterform.html。这是加载CSS和JavaScript的地方。

编辑:

的文件不能被发现,因为你没有正确的设置:

对于应用: STATIC_URL = '/static/'

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

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

位于所有html文件的顶部。

然后,你将不再需要你的了只使用{{ STATIC_URL}}

Manage static files

建议:

做一个{%block exta_head %} {% endblock %} 内的主模板,你让你的扩展模板可以添加有自己的文件。

+0

我缩进代码,我仍然无法加载css或js文件。请参阅更新 – Joseleg 2014-11-04 23:50:22

+0

您可以发布您的masterform.html。在html文件的头部应该有链接到js文件和css文件 – Persijn 2014-11-05 09:28:06

+0

我添加了两个模板masterform.html和base.html的定义。主表单模板扩展了基本模板 – Joseleg 2014-11-05 15:13:42