我正在努力展示我通过管理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
感谢您的帮助
答案 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