2017-05-08 1 views
0

Ich habe derzeit Probleme mit dem Öffnen von html Seite mit django, obwohl ich versucht habe, herauszufinden, auf der URL.py, view.py, und der HTML-Seite. Mein Code ist unten angegeben:Django html onclick um eine andere html Seite zu öffnen

batterycurrent.py unter Ansichten Ordner

from __future__ import absolute_import 
from __future__ import unicode_literals 

from django.core.files.storage import default_storage 
from django.core.urlresolvers import reverse_lazy 
from django.http import HttpResponseRedirect 
from django.utils import timezone 
from django.views.generic import FormView, TemplateView 
from sendfile import sendfile 
import os.path 

from .mixin import AjaxTemplateMixin, PermissionRequiredMixin, PageTitleMixin 
from ..forms import DiagnosticsForm 
from ..tasks import dump_diagnostics 
from django.shortcuts import render 

class DiagnosticMixin(PageTitleMixin, PermissionRequiredMixin): 
    permission_required = ['system.view_log_files'] 
    page_title = 'Diagnostics' 
    form_class = DiagnosticsForm 

class BatteryCurrentView(DiagnosticMixin,FormView): 
    template_name = 'system/batterycurrent.html' 

    def batterycurrent(request): 
    return render(request, 'system/batterycurrent.html') 

url.py

from __future__ import absolute_import 
from __future__ import unicode_literals 

from collections import OrderedDict 
from django.conf.urls import url 
from django.core.urlresolvers import reverse_lazy 
from .views import BatteryCurrentView 

sub_urlpatterns['diagnostic'] = [ 
    url(r'^diagnostics$', DiagnosticView.as_view(), name='diagnostic'), 
    url(r'^diagnostics/download', DiagnosticDownloadView.as_view(), name='diagnostic-download'), 
    url(r'^diagnostics/batterycurrent', BatteryCurrentView.as_view(), name='batterycurrent'), 
] 

** Das batterycurrent.html ist innerhalb diagnostic.html.

batterycurrent.html (Template (der HTML ist im Systemordner)

<li><a href="{% url 'system:batterycurrent' %}">Battery Current Vs Timestamp</a></li> 

, wenn ich den Code auszuführen begann, erschien die Fehler

i) importError batterycurrentView couldn't be imported 
ii)Reverse for 'batterycurrent' with arguments '()' and keyword arguments '{}' 
    not found. 0 pattern(s) tried: [] 

Bitte leite mich auf diese

Antwort

1

Sie haben nicht Ihr vollständiges App-Layout angegeben, daher ist dies ein bisschen schwierig zu beantworten, aber es klingt, als hätten Sie einen Views-Ordner enthält eine Datei "batterycurrent.py", die wiederum Ihre Ansicht BatteryCurrentView enthält.

Wenn ja, sowie sicherzustellen, dass Sie in diesem Verzeichnis eine (leere) __init__.py Datei haben, Sie benötigen urls.py den Blick aus dem Modul importieren es in ist:

from views.batterycurrent import BatteryCurrentView 

Auch ich verstehe nicht, was Sie mit sub_urlpatterns in dieser Datei tun. Du definierst dieses Wörterbuch nicht irgendwo; aber in jedem Fall müssen die Muster in einer Liste sein, die nur urlpatterns genannt wird.

Schließlich stellen Sie sicher, dass diese Datei tatsächlich urls.py, nicht url.py genannt wird.

+0

Entschuldigung, dass meine Datei für meine App zu groß ist, um hier zu setzen. Danke, Mann! ich habe vergessen, das in meine __init__.py aufzunehmen, wie sorglos bin ich, vielen Dank für die Rettung meines Tages! –

0

Scheint wie das Problem im Import das Modul in der Datei url.py ist.

Wenn Sie das BatteryCurrentView-Modul in der Datei batterycurrent.py und Ihre url.py-Datei im anderen Ordner erstellt haben, müssen Sie das Modul über den Namen des Ordners mit dem Dateinamen importieren.

So Ihre Datei in der Ansicht Ordner wird dann sollten Sie

from views.batterycurrent import BatteryCurrentView 

verwenden Und wenn, falls Ihre Datei url.py im selben Ordner innerhalb der Ansicht befindet, dann müssen Sie nur Modul importieren wie folgt aus:

from .batterycurrent import BatteryCurrentView 
+0

danke Mann, es funktioniert! –

+0

@ kit, Froh, es hat funktioniert.Sie können auch besuchen: [[Stellen Sie Fragen, erhalten Antworten, keine Ablenkungen]] (((http://Stackoverflow.com/tour))), um mehr Informationen über SO zu erhalten und mich so viel wie möglich zu unterstützen. Vielen Dank. –

0

Versuchen Sie es erneut, nachdem Sie einen Kontext in der Ansicht hinzugefügt haben, oder lassen Sie es leer.

def batterycurrent(request): 
    return render (request, template, {}) 
+0

danke für deine antwort auf meine frage, ich habe vergessen, in der init.py-datei zu importieren. –

Verwandte Themen