我正在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和更改网址),看看是否有一些损坏的文件或配置
答案 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}}
<强>建议:强>
制作{%block exta_head %} {% endblock %}
在您的主模板中,以便您的扩展模板可以添加自己的文件。