django, не может получить доступ ко 2-й странице приложения (новый каталог) - PullRequest
0 голосов
/ 14 апреля 2020

Я столкнулся с конфликтом с предыдущей конфигурацией и не уверен, как обойти ошибку.

ошибка:

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 () для создания каталогов ва Не конфликтовать со стандартным путем ()?

1 Ответ

0 голосов
/ 20 апреля 2020

из

irc.freenode.net #django user <GinFuyou>

.

from userarea import views as userarea_views

ключ был

userarea_views
...