服务器无法识别Views.py。服务器无法识别代码或针对文件中的错误代码引发异常

时间:2018-08-04 12:08:42

标签: django django-views

我正在努力展示我通过管理GUI创建的一些模型对象。 我无法通过查看功能将它们显示在网页上。

(edit :)经过一些挖掘,我意识到当我破坏views.py文件时,服务器不会引发异常(所有其他文件都可以正常工作)。服务器为什么不读取视图文件?

所有文件都位于/ jobboard中。作业板在设置文件的INSTALLED_APPS中列出,而作业板中的所有其他文件都可以正常工作。

我还注意到我在项目文件夹中没有admin.py。正常吗?

Views.py:

from django.shortcuts import render
from django.views.generic import TemplateView
from django.contrib.auth.decorators import staff_member_required
from .models import JobPost
from django.utils import timezone


def jobs(request):   
    JobPost.objects.filter(published_date__lte=timezone.now()).order_by('published_date')

    latest_post_list = JobPost.objects.order_by('-pub_date')

    context = {

        'deadline': deadline,
        'created_at': created_at, 
        'wordcount':wordcount, 
        'jobtaken':jobtaken,
        'JobPost':JobPost,
        'latest_post_list':latest_post_list,
    }

    return render(request, 'jobboard/jobs.html', context=context)

URL.py:

from django.contrib import admin
from django.urls import path, re_path, include
from django.conf.urls import url
from django.contrib.auth import views as auth_views
from login import views

urlpatterns = [

    path('admin/', admin.site.urls),
    #re_path(r'^login/$', auth_views.login(template_name = 'accounts/login.html'), name='login'),
    re_path(r'^signup/$', views.signup, name='signup'),
    path('login/', include('login.urls')),
    path('', views.index, name='index'),
    path('accounts/', include('django.contrib.auth.urls')),
    path('jobs/', views.jobs, name='jobs'),
    path('users/', include('users.urls')),
    path('users/', include('django.contrib.auth.urls')),
]

目录结构:

gpproject
│   ├── db.sqlite3
│   ├── gp.sublime-project
│   ├── gp.sublime-workspace
│   ├── grad
│   │   ├── __init__.py
│   │   ├── Procfile1
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-35.pyc
│   │   │   ├── settings.cpython-35.pyc
│   │   │   ├── urls.cpython-35.pyc
│   │   │   └── wsgi.cpython-35.pyc
│   │   ├── settings.py
│   │   ├── static
│   │   │   ├── office.jpeg
│   │   │   └── pics
│   │   │       └── office.jpeg
│   │   ├── urls.py
│   │   ├── views.py
│   │   └── wsgi.py
│   ├── jobboard
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── __init__.py
│   │   ├── migrations
│   │   │   ├── 0001_initial.py
│   │   │   ├── 0002_auto_20180716_1122.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   ├── tests.py
│   │   └── views.py
│   ├── login
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── __init__.py
│   │   ├── migrations
│   │   │   ├── 0001_initial.py
│   │   │   ├── __init__.py
│   │   │   └── __pycache__
│   │   │       ├── 0001_initial.cpython-35.pyc
│   │   │       └── __init__.cpython-35.pyc
│   │   ├── models.py
│   │   ├── __pycache__
│   │   │   ├── admin.cpython-35.pyc
│   │   │   ├── apps.cpython-35.pyc
│   │   │   ├── __init__.cpython-35.pyc
│   │   │   ├── models.cpython-35.pyc
│   │   │   ├── urls.cpython-35.pyc
│   │   │   └── views.cpython-35.pyc
│   │   ├── static
│   │   │   └── pics
│   │   │       └── office.jpeg
│   │   ├── templates
│   │   │   ├── login
│   │   │   │   └── office.jpeg
│   │   │   ├── loginbutton.html
│   │   │   ├── logoutbutton.html
│   │   │   ├── navbar.html
│   │   │   ├── registration
│   │   │   │   ├── login.html
│   │   │   │   ├── logintut.html
│   │   │   │   ├── password_reset_complete.html
│   │   │   │   ├── password_reset_confirm.html
│   │   │   │   ├── password_reset_done.html
│   │   │   │   ├── password_reset_email.html
│   │   │   │   └── password_reset_form.html
│   │   │   └── signup.html
│   │   ├── tests.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── manage.py
│   ├── oldbackupdb.sqlite3
│   ├── templates
│   │   ├── base.html
│   │   ├── footer.html
│   │   ├── Header.html
│   │   ├── index2.html
│   │   ├── index.html
│   │   ├── jobpost.html
│   │   ├── jobs.html
│   │   ├── navbar.html
│   │   ├── oldHeader.html
│   │   ├── sidenav.html
│   │   ├── signup.html
│   │   └── userdropdown.html
│   ├── universities.xcf
│   └── users
│       ├── admin.py
│       ├── apps.py
│       ├── forms.py
│       ├── __init__.py
│       ├── migrations
│       │   ├── 0001_initial.py
│       │   ├── __init__.py
│       │   └── __pycache__
│       │       ├── 0001_initial.cpython-35.pyc
│       │       └── __init__.cpython-35.pyc
│       ├── models.py
│       ├── __pycache__
│       │   ├── admin.cpython-35.pyc
│       │   ├── forms.cpython-35.pyc
│       │   ├── __init__.cpython-35.pyc
│       │   ├── models.cpython-35.pyc
│       │   ├── urls.cpython-35.pyc
│       │   └── views.cpython-35.pyc
│       ├── tests.py
│       ├── urls.py
│       └── views.py
├── gradproofworkspace.code-workspace
├── index1.html
├── office.jpeg
├── Pipfile
├── Pipfile.lock
├── Procfile
├── README.md
├── requirements.txt
└── runtime.txt

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

您不导入作业视图。在您的urls.py中,名称views仅从login应用程序导入。

from login import views
...
path('jobs/', views.jobs, name='jobs'),

您可以这样更改它:

from jobboard.views import jobs
...
path('jobs/', jobs, name='jobs'),

答案 1 :(得分:0)

感谢Håken,这为我指明了正确的方向。虽然更准确地说,我只是缺少了这一行代码:

from jobboard import views