Я вижу "GET / emp HTTP / 1.1" 404 2159 на моем терминале, когда я пытаюсь подключиться к серверу django ... Я получаю страницу 404, не найденную - PullRequest
0 голосов
/ 30 мая 2019

Мне кажется, что мой сервер не может хорошо отображать мои представления из-за некоторых проблем с настройкой URL. Он всегда выводит сообщение Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/emp

Вот структура моего проекта

|--hrdjango
 |--employee
   |--migrations folder
   |--admin.py
   |--urls.py
    ...
   |views.py

|--hrdjango
  ...
 |--settings.py
 |--urls.py

views.py

from django.shortcuts import render, redirect  
from .forms import EmployeeForm  
from .models import Employee  
# Create your views here.  
def emp(request):  
    if request.method == "POST":  
        form = EmployeeForm(request.POST)  
        if form.is_valid():  
            try:  
                form.save()  
                return redirect('/show')  
            except:  
                pass  
    else:  
        form = EmployeeForm()  
    return render(request,'index.html',{'form':form}) 
def show(request):  
    employees = Employee.objects.all()  
    return render(request,"show.html",{'employees':employees})  
def edit(request, id):  
    employee = Employee.objects.get(id=id)  
    return render(request,'edit.html', {'employee':employee})  
def update(request, id):  
    employee = Employee.objects.get(id=id)  
    form = EmployeeForm(request.POST, instance = employee)  
    if form.is_valid():  
        form.save()  
        return redirect("/show")  
    return render(request, 'edit.html', {'employee': employee})  
def destroy(request, id):  
    employee = Employee.objects.get(id=id)  
    employee.delete()  
    return redirect("/show")  

employee / urls.py


from .import views  
from django.contrib import admin  
from django.urls import path, include
app_name = 'employee'
urlpatterns = [  
    path('', views.emp, name='emp'),  
    path('show',views.show, name='show'),  
    path('edit/<int:id>', views.edit, name='edit'),  
    path('update/<int:id>', views.update, name='update'),  
    path('delete/<int:id>', views.destroy, name='destroy'),
    ]  

hrdjango / urls


from django.contrib import admin  
from django.urls import include, path
from employee import views  

urlpatterns = [  
path('admin/', admin.site.urls),
path('employee/', include('employee.urls')),
path('', views.emp),
]

Я ожидал увидеть рендеринг просмотров в соответствии с моими URLconfig, но кажется, что он не может отобразить мои представления, потому что не видит его.

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Если вы хотите получить доступ к emp(request) представлению.

hrdjango / URLs

from django.contrib import admin  
from django.urls import include, path
from employee import views  

urlpatterns = [  
    path('admin/', admin.site.urls),
    path('employee/', include('employee.urls')),
    # path('', views.emp), - remove this line
]

Тогда ,,, Вы можете сделать запрос GET, например, вот так.

Ниже URI будет вызывать emp(request) метод

http://127.0.0.1/employee/

Кроме того, в вашем ModelForm Meta классе вы должны указать Employee класс, а не Employee экземпляр класса.

forms.py

from django import forms 
from .models import Employee 
class EmployeeForm(forms.ModelForm):

    class Meta: 
        model = Employee
        fields = '__all__'

Надеюсь, это вам поможет.

0 голосов
/ 30 мая 2019

У вас нет URL с этим шаблоном URL http://127.0.0.1:8000/emp, вместо этого вы пробовали, например, с:

  1. http://127.0.0.1:8000/
  2. http://127.0.0.1:8000/show

Или другой URL-адрес, определенный в employee / urls.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...