Задать вопрос
@TheTrace

Как подключить класс к urls в Django?

Создал новостную категорию на Django и в models.py создал класс Articles, при импортировании Articles в urls.py все нормально. Но когда я начинаю настраивать вывод статьи, то Articles.objects пишет ошибку, что Articles не в объекте. Как правильно написать функцию objects и правильно настроить. Заранее спасибо!
MODELS.PY:
from django.db import models
class Articles(models.Model):
    title = models.CharField(max_lenght = 120)
    post = models.TextField()
    date = models.DateTimeField()
    def __str__(self):
        return self.title


from django.urls import path, include
from django.views.generic import ListView, DetailView
from news.models import Articles

urlpatterns = [ 
    path('', ListView.as_view(queryset=Articles.objects.all().order_by("-date")[:20], template_name="news/posts.html")),
]

5c4c43c44d133359155951.png
  • Вопрос задан
  • 459 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
netpastor
@netpastor
Python developer
Правильно - когда мухи отдельно а котлеты отдельно

from django.urls import path
from news.views import NewsListView

urlpatterns = [ 
    path('', NewsListView.as_view()),
]


from django.views.generic import ListView
from news.models import Articles

class NewsListView(ListView):
    model = Articles
    paginate_by = 20
    ordering = 'created_date'
    template_name = 'news/posts.html'
Ответ написан
@deniz1983
...
path('', ListView.as_vew(), name='post'), #это ваш path, который указывает под каким именем искать view
Затем в файле views.py импортируете свой класс: from .models import Articles и пишете код для view: def post(request):
articles = Articles.objects.filter(created_date__lte=timezone.now()).order_by('created_date')# здесь конечно ваша queryset, а не мое ))
return TemplateResponse(request, 'news/post.html', {'articles': articles })
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы