Я пытаюсь использовать представления на основе классов для второго приложения в том же проекте, однако изменения не проходят? - PullRequest
0 голосов
/ 17 июня 2020

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

Я пытаюсь создать список для просмотра для всех задач задачи, которые извлекаются из базы данных. Однако это не приводит к внесению необходимых изменений, в данном случае это класс TodoListView, который я реализовал в views.py. У меня уже есть приложение для блога с функциями, использующее те же представления на основе классов.

1 Ответ

0 голосов
/ 17 июня 2020

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)
...