首页 > 解决方案 > 我试图在同一个项目中为第二个应用程序使用基于类的视图,但是,更改没有通过?

问题描述

待办事项的 url.py

from django.urls import path
from . import views 
from .views import TodoListView


urlpatterns = [
path('todo/', TodoListView.as_view(), name='blog-todo')  
]

待办事项的views.py

    from django.shortcuts import render
from django.http import HttpResponse
from .models import Todo
from django.views.generic import ListView


def todo(request):
    context = {

        'todo_list': Todo.objects.all(),
        'title': 'Todo'

    }

    return render (request, 'todo/to_do.html', context)


class TodoListView(ListView):
    model = Todo
    template_name = 'todo/to_do.html'
    context_object_name = 'todo_list'
    ordering = ['-date_posted']

这是我的项目常规 urls.py

    from django.contrib import admin
from django.contrib.auth import views as auth_views
from django.urls import path, include
from users import views as user_views
from django.conf import settings
from django.conf.urls.static import static
from todo import views


urlpatterns = [
    path('admin/', admin.site.urls),
    path('todo/', views.todo, name='blog-todo'),
    path('register/', user_views.register, name='register'),
    path('profile/', user_views.profile, name='profile'),
    path('login/', auth_views.LoginView.as_view(template_name='logout_pages/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(template_name='logout_pages/logout.html'), name='logout'),
    path('', include('blog.urls')),
]

if settings.DEBUG:

    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

待办事项的models.py

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User


class Todo(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return self.title

我试图为从数据库中提取的所有待办事项创建一个视图列表。但是,这并没有进行必要的更改,在这种情况下,它是我在 views.py 中实现的 TodoListView 类。我已经有一个函数博客应用程序使用相同的基于类的视图。

标签: pythondjangodjango-modelsdjango-views

解决方案


待办事项的 url.py:

from django.urls import path
from . import views 

app_name = 'my second app name'


urlpatterns = [
path('todo', views.todo, name='todo')  
]

这是我的项目常规 urls.py

from django.contrib import admin
from django.contrib.auth import views as auth_views
from django.urls import path, include
from users import views as user_views
from django.conf import settings
from django.conf.urls.static import static
from todo import views


urlpatterns = [
    path('admin/', admin.site.urls),
    path('second_adpp/', include('second_app.urls')),
    path('register/', user_views.register, name='register'),
    path('profile/', user_views.profile, name='profile'),
    path('login/', auth_views.LoginView.as_view(template_name='logout_pages/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(template_name='logout_pages/logout.html'), name='logout'),
    path('', include('blog.urls')),
]

if settings.DEBUG:

    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

待办事项的views.py

from django.shortcuts import render
from django.http import HttpResponse
from .models import Todo
from django.views.generic import ListView


def todo(request):
    context = {
        'todo_list': Todo.objects.all().values(),
        'title': 'Todo',}
    return render (request, 'todo/to_do.html', context)

推荐阅读