from typing import Text
from django.shortcuts import get_object_or_404, render

# Create your views here.
from django.http import HttpResponse
# Импортируем модель, чтобы обратиться к ней
from .models import Group, Post


def index(request):
    template = 'posts/index.html'

    # Одна строка вместо тысячи слов на SQL:
    # в переменную posts будет сохранена выборка из 10 объектов модели Post,
    # отсортированных по полю pub_date по убыванию (от больших значений к меньшим)
    posts = Post.objects.order_by('-pub_date')[:10]
    # В словаре context отправляем информацию в шаблон
    context = {
        'posts': posts,
        'title': 'Последние обновления на сайте'
    }
    return render(request, template, context)

# Ранее вроде бы надо было создать такую функцию, хз хз
'''
def group_list(request):
    template = 'post/group_list.html'
    return render(request, template) 
'''

# View-функция для страницы сообщества:
def group_posts(request, slug):

    # Функция get_object_or_404 получает по заданным критериям объект 
    # из базы данных или возвращает сообщение об ошибке, если объект не найден.
    # В нашем случае в переменную group будут переданы объекты модели Group,
    # поле slug у которых соответствует значению slug в запросе
    group = get_object_or_404(Group, slug=slug)

    # Метод .filter позволяет ограничить поиск по критериям.
    # Это аналог добавления
    # условия WHERE group_id = {group_id}
    posts = Post.objects.filter(group=group).order_by('-pub_date')[:10]
    
    context = {
        'group': group,
        'posts': posts,
    }
    return render(request, 'posts/group_list.html', context)

def posts(request):
    return HttpResponse('Список postov')


# В урл мы ждем парметр, и нужно его прередать в функцию для использования
def post_detail(request, pk):
    return HttpResponse(f'post o {pk}')


from typing import Text
from django.shortcuts import get_object_or_404, render

# Create your views here.
from django.http import HttpResponse
# Импортируем модель, чтобы обратиться к ней
from .models import Group, Post


def index(request):
    template = 'posts/index.html'

    # Одна строка вместо тысячи слов на SQL:
    # в переменную posts будет сохранена выборка из 10 объектов модели Post,
    # отсортированных по полю pub_date по убыванию (от больших значений к меньшим)
    posts = Post.objects.order_by('-pub_date')[:10]
    # В словаре context отправляем информацию в шаблон
    context = {
        'posts': posts,
        'title': 'Последние обновления на сайте'
    }
    return render(request, template, context)

# Ранее вроде бы надо было создать такую функцию, хз хз
'''
def group_list(request):
    template = 'post/group_list.html'
    return render(request, template) 
'''

# View-функция для страницы сообщества:
def group_posts(request, slug):

    # Функция get_object_or_404 получает по заданным критериям объект 
    # из базы данных или возвращает сообщение об ошибке, если объект не найден.
    # В нашем случае в переменную group будут переданы объекты модели Group,
    # поле slug у которых соответствует значению slug в запросе
    group = get_object_or_404(Group, slug=slug)

    # Метод .filter позволяет ограничить поиск по критериям.
    # Это аналог добавления
    # условия WHERE group_id = {group_id}
    posts = Post.objects.filter(group=group).order_by('-pub_date')[:10]
    
    context = {
        'group': group,
        'posts': posts,
    }
    return render(request, 'posts/group_list.html', context)

def posts(request):
    return HttpResponse('Список postov')


# В урл мы ждем парметр, и нужно его прередать в функцию для использования
def post_detail(request, pk):
    return HttpResponse(f'post o {pk}')


# Create your views here. # Импортируем модель, чтобы обратиться к ней # Одна строка вместо тысячи слов на SQL: # в переменную posts будет сохранена выборка из 10 объектов модели Post, # отсортированных по полю pub_date по убыванию (от больших значений к меньшим) # В словаре context отправляем информацию в шаблон # Ранее вроде бы надо было создать такую функцию, хз хз def group_list(request):     template = 'post/group_list.html'     return render(request, template) # View-функция для страницы сообщества: # Функция get_object_or_404 получает по заданным критериям объект # из базы данных или возвращает сообщение об ошибке, если объект не найден. # В нашем случае в переменную group будут переданы объекты модели Group, # поле slug у которых соответствует значению slug в запросе # Метод .filter позволяет ограничить поиск по критериям. # Это аналог добавления # условия WHERE group_id = {group_id} # В урл мы ждем парметр, и нужно его прередать в функцию для использования