Я столкнулся с конфликтом с предыдущей конфигурацией и не уверен, как обойти ошибку.
ошибка:
Exception Value: module 'userarea.views' has no attribute 'home_view'
из проекта urls.py:
$ cat exchange/urls.py
from django.contrib import admin
from django.urls import path, include
from pages.views import home_view, contact_view, about_view, user_view
#from products.views import product_detail_view
from userdash.views import userdash_detail_view, userdash_create_view
from django.conf.urls import include
from django.urls import path
from register import views as v
from pages import views
from userarea import views
urlpatterns = [
path('', views.home_view, name='home'),
path('', include("django.contrib.auth.urls")),
path('admin/', admin.site.urls),
path("register/", v.register, name="register"),
path('userdash/', userdash_detail_view),
path('contact/', contact_view),
path('', include("userarea.urls")),
path('create/', userdash_create_view),
path('about/', about_view),
path('user/', user_view),
]
Я либо получаю эту ошибку, либо проблему с ней, пытаясь получить доступ к моему умолчанию.
Но не могу найти обходной путь.
из приложения views.py
$ cat userarea/views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def uindex(response):
return HttpResponse("<h1>New user dashboard area</h1>")
app urls.py:
$ cat userarea/urls.py
from django.urls import path
from . import views
urlpatterns = [
path("uindex/", views.uindex, name="user index"),
]
Как заставить мой новый / 2-й проект не конфликтовать с моим предыдущим приложением и загрузить его собственную страницу индекса в его каталог?
full ошибка отладки:
AttributeError at /uindex
module 'userarea.views' has no attribute 'home_view'
Request Method: GET
Request URL: http://192.168.42.13:8080/uindex
Django Version: 2.2.7
Exception Type: AttributeError
Exception Value:
module 'userarea.views' has no attribute 'home_view'
Exception Location: ./exchange/urls.py in <module>, line 28
Python Executable: /usr/local/bin/uwsgi
Python Version: 3.7.3
Python Path:
['.',
'',
'/home/kermit/Env/secret/lib/python37.zip',
'/home/kermit/Env/secret/lib/python3.7',
'/home/kermit/Env/secret/lib/python3.7/lib-dynload',
'/usr/lib/python3.7',
'/home/kermit/Env/secret/lib/python3.7/site-packages']
Обратите внимание, дважды обновленные urlpatterns и ошибки
новое обновление:
Это то, что он, кажется, вызывает, но я не могу понять, как провести различие между двумя вызовами.
$ cat pages / views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def home_view(request, *args, **kwargs):
return render(request, "home.html",{})
def contact_view(request, *args, **kwargs):
return render(request, "contact.html",{})
def about_view(*args, **kwargs):
return HttpResponse('<h1>About Page</h1>')
def user_view(request, *args, **kwargs):
my_context = {
"my_text": "This is my context",
"my_number": "123",
"my_list": [1121, 1212, 3423, "abc"]
}
print(args, kwargs)
print(request.user)
return render(request, "user.html", my_context)
Большое ОБНОВЛЕНИЕ (изменения, сделанные выше также):
Я создаю новый шлепок проект и использовал точно такую же конфигурацию, и он работает найти.
(Env) piggy@tuna:~/www/src/exchange2 $ cat userdash/urls.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path("userdash/", views.userdash, name="user dash"),
]
(Env) piggy@tuna:~/www/src/exchange2 $ cat exchange2/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include("userdash.urls")),
]
(Env) piggy@tuna:~/www/src/exchange2 $ cat userdash/views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(response):
return HttpResponse("<h1>Hello World!</h1>")
def userdash(response):
return HttpResponse("<h1>User Dashboard!</h1>")
почему мой метод include () для создания каталогов ва Не конфликтовать со стандартным путем ()?