From 2d02c63db4105dae35b937d3c7dffa80e59bcfd6 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Mon, 4 Sep 2023 18:01:36 +0300 Subject: [PATCH 01/48] models, some views and serializers --- backend/Dockerfile | 11 + backend/api/__init__.py | 0 backend/api/admin.py | 3 + backend/api/apps.py | 6 + backend/api/migrations/__init__.py | 0 backend/api/permissions.py | 20 ++ backend/api/serializers.py | 117 +++++++++++ backend/api/urls.py | 18 ++ backend/api/views.py | 113 +++++++++++ backend/foodgram/__init__.py | 0 backend/foodgram/asgi.py | 16 ++ backend/foodgram/settings.py | 151 ++++++++++++++ backend/foodgram/urls.py | 7 + backend/foodgram/wsgi.py | 16 ++ backend/manage.py | 21 ++ backend/recipes/__init__.py | 0 backend/recipes/admin.py | 27 +++ backend/recipes/apps.py | 6 + backend/recipes/migrations/0001_initial.py | 124 ++++++++++++ backend/recipes/migrations/__init__.py | 0 backend/recipes/models.py | 190 ++++++++++++++++++ backend/requirements.txt | 9 + backend/users/__init__.py | 0 backend/users/admin.py | 3 + backend/users/apps.py | 6 + backend/users/migrations/0001_initial.py | 31 +++ ...s_user_date_joined_user_groups_and_more.py | 72 +++++++ backend/users/migrations/__init__.py | 0 backend/users/models.py | 29 +++ backend/users/views.py | 3 + 30 files changed, 999 insertions(+) create mode 100644 backend/Dockerfile create mode 100644 backend/api/__init__.py create mode 100644 backend/api/admin.py create mode 100644 backend/api/apps.py create mode 100644 backend/api/migrations/__init__.py create mode 100644 backend/api/permissions.py create mode 100644 backend/api/serializers.py create mode 100644 backend/api/urls.py create mode 100644 backend/api/views.py create mode 100644 backend/foodgram/__init__.py create mode 100644 backend/foodgram/asgi.py create mode 100644 backend/foodgram/settings.py create mode 100644 backend/foodgram/urls.py create mode 100644 backend/foodgram/wsgi.py create mode 100644 backend/manage.py create mode 100644 backend/recipes/__init__.py create mode 100644 backend/recipes/admin.py create mode 100644 backend/recipes/apps.py create mode 100644 backend/recipes/migrations/0001_initial.py create mode 100644 backend/recipes/migrations/__init__.py create mode 100644 backend/recipes/models.py create mode 100644 backend/requirements.txt create mode 100644 backend/users/__init__.py create mode 100644 backend/users/admin.py create mode 100644 backend/users/apps.py create mode 100644 backend/users/migrations/0001_initial.py create mode 100644 backend/users/migrations/0002_alter_user_managers_user_date_joined_user_groups_and_more.py create mode 100644 backend/users/migrations/__init__.py create mode 100644 backend/users/models.py create mode 100644 backend/users/views.py diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..baad26f --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,11 @@ +FROM python:3.9 + +WORKDIR /app + +COPY requirements.txt ./ + +RUN pip install -r requirements.txt --no-cache-dir + +COPY . . + +CMD ["gunicorn", "--bind", "0.0.0.0:8000", "foodgram.wsgi"] \ No newline at end of file diff --git a/backend/api/__init__.py b/backend/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/api/admin.py b/backend/api/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/backend/api/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/api/apps.py b/backend/api/apps.py new file mode 100644 index 0000000..66656fd --- /dev/null +++ b/backend/api/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class ApiConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'api' diff --git a/backend/api/migrations/__init__.py b/backend/api/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/api/permissions.py b/backend/api/permissions.py new file mode 100644 index 0000000..633f47d --- /dev/null +++ b/backend/api/permissions.py @@ -0,0 +1,20 @@ +from rest_framework.permissions import SAFE_METHODS, BasePermission + + +class IsOwnerOrReadOnly(BasePermission): + def has_object_permission(self, request, view, obj): + return request.method in SAFE_METHODS or obj.author == request.user + +class IsAmdinOrReadOnly(BasePermission): + + def has_permission(self, request, view): + return (request.method in SAFE_METHODS + or ( + request.user.is_authenticated + and (request.user.is_admin or request.user.is_superuser))) + + +# class IsAdminOrReadOnly(BasePermission): +# def has_permission(self, request, view): +# return (request.method in SAFE_METHODS +# or request.user and request.user.is_staff) \ No newline at end of file diff --git a/backend/api/serializers.py b/backend/api/serializers.py new file mode 100644 index 0000000..0dd2852 --- /dev/null +++ b/backend/api/serializers.py @@ -0,0 +1,117 @@ +import base64 + +import webcolors +from django.core.files.base import ContentFile +from rest_framework import serializers +from rest_framework.relations import SlugRelatedField +from rest_framework.validators import UniqueTogetherValidator + +from recipes.models import (Ingredient, + Tag, + Recipe, + Favorite, + ShoppingCart, + Follow) +from users.models import User + + +class Base64ImageField(serializers.ImageField): + def to_internal_value(self, data): + if isinstance(data, str) and data.startswith('data:image'): + format, imgstr = data.split(';base64,') + ext = format.split('/')[-1] + data = ContentFile(base64.b64decode(imgstr), name='temp.' + ext) + + return super().to_internal_value(data) + + +class UserSerializer(serializers.ModelSerializer): + + ... + + class Meta: + fields = '' + model = User + + +class IngredientSerializer(serializers.ModelSerializer): + """Ингредиенты.""" + class Meta: + fields = '__all__' + model = Ingredient + + +class TagSerializer(serializers.ModelSerializer): + """Теги.""" + class Meta: + fields = '__all__' + model = Tag + + +class RecipeSerializer(serializers.ModelSerializer): + + ... + + class Meta: + fields = '__all__' + model = Recipe + + +class FavoriteSerializer(serializers.ModelSerializer): + + ... + + class Meta: + fields = '__all__' + model = Favorite + + +class ShoppingCartSerializer(serializers.ModelSerializer): + + ... + + class Meta: + fields = '__all__' + model = ShoppingCart + + +class FollowSerializer(serializers.ModelSerializer): + user = serializers.SlugRelatedField( + slug_field='username', + read_only=True, + default=serializers.CurrentUserDefault() + ) + following = serializers.SlugRelatedField( + slug_field='username', + queryset=User.objects.all() + ) + + class Meta: + fields = ('user', 'following', ) + model = Follow + read_only_fields = ('owner',) + validators = [ + UniqueTogetherValidator( + queryset=Follow.objects.all(), + fields=('user', 'following') + ) + ] + + def validate(self, data): + if self.context['request'].user == data['following']: + raise serializers.ValidationError( + 'Подписка на самого себя невозможна!' + ) + return data + + +class Hex2NameColor(serializers.Field): + def to_representation(self, value): + return value + + def to_internal_value(self, data): + try: + data = webcolors.hex_to_name(data) + except ValueError: + raise serializers.ValidationError('Для этого цвета нет имени') + return data diff --git a/backend/api/urls.py b/backend/api/urls.py new file mode 100644 index 0000000..d5d5574 --- /dev/null +++ b/backend/api/urls.py @@ -0,0 +1,18 @@ +from rest_framework.routers import DefaultRouter +from django.urls import include, path + +from api.views import (IngredientViewSet, + TagViewSet, + FollowViewSet, + ) + +app_name = 'api' + +v1_router = DefaultRouter() +v1_router.register('ingredients', IngredientViewSet) +v1_router.register('tags', TagViewSet) +v1_router.register('follow', FollowViewSet, basename='follow') + +urlpatterns = [ + path('v1/', include(v1_router.urls)), +] diff --git a/backend/api/views.py b/backend/api/views.py new file mode 100644 index 0000000..ac1c2fa --- /dev/null +++ b/backend/api/views.py @@ -0,0 +1,113 @@ +from rest_framework import viewsets, status +from django.shortcuts import get_object_or_404 +from rest_framework.viewsets import ReadOnlyModelViewSet +from rest_framework.permissions import (AllowAny, + IsAuthenticated) +from rest_framework import filters +from rest_framework import mixins +from rest_framework.filters import SearchFilter +from rest_framework.response import Response + +from api.serializers import (UserSerializer, + IngredientSerializer, + TagSerializer, + RecipeSerializer, + FavoriteSerializer, + ShoppingCartSerializer, + FollowSerializer + ) +from recipes.models import (Ingredient, + Tag, + Recipe, + Favorite, + ShoppingCart, + Follow) +from users.models import User +from api.permissions import (IsOwnerOrReadOnly, + IsAmdinOrReadOnly) + + +class IngredientViewSet(ReadOnlyModelViewSet): + """Вьюсет для просмотра ингредиентов.""" + queryset = Ingredient.objects.all() + serializer_class = IngredientSerializer + filter_backends = (SearchFilter,) + search_fields = ('name',) + permission_classes = [IsAmdinOrReadOnly] + + +class TagViewSet(ReadOnlyModelViewSet): + """Вьюсет для просмотра тегов.""" + queryset = Tag.objects.all() + serializer_class = TagSerializer + permission_classes = [IsAmdinOrReadOnly] + + + + + +class FollowViewSet(mixins.CreateModelMixin, + mixins.ListModelMixin, + mixins.DestroyModelMixin, + viewsets.GenericViewSet): + """Вьюсет для подписок. + Просмотр, подписка на пользователя, + удаление подписки.""" + serializer_class = FollowSerializer + permission_classes = [IsAuthenticated, IsOwnerOrReadOnly] + filter_backends = (filters.SearchFilter, ) + search_fields = ('user__username', 'following__username') + + def get_queryset(self): + return self.request.user.follower.all() + + def perform_create(self, username): + author = get_object_or_404(User, username=username) + if author != self.request.user: + return Follow.objects.get_or_create(user=self.request.user, + author=author) + return Response('На себя подписка невозможна!', + status=status.HTTP_400_BAD_REQUEST) + + def delete(self, username): + author = get_object_or_404(User, username=username) + follower = Follow.objects.filter(user=self.request.user, + author=author) + if follower.exists(): + return follower.delete() + + +class FavoriteViewSet(mixins.CreateModelMixin, + mixins.DestroyModelMixin, + viewsets.GenericViewSet): + """Вьюсет для добавления рецепта в избранное.""" + serializer_class = FavoriteSerializer + permission_classes = [IsAuthenticated, ] + + def get_queryset(self): + user = self.request.user + return Favorite.objects.filter(user=user) + + def perform_create(self): + user = self.request.user + fav_recipe = get_object_or_404( + Recipe, pk=id) + if Favorite.objects.filter( + user=user, + recipe=fav_recipe).exists(): + return Response('Рецепт уже в избранном!', + status=status.HTTP_400_BAD_REQUEST) + else: + Favorite.objects.create(user=user, recipe=fav_recipe) + + def delete(self): + user = self.request.user + fav_recipe = get_object_or_404( + Recipe, pk=id) + if not Favorite.objects.filter( + user=user, + recipe=fav_recipe).exists(): + return Response('Рецепт нет в избранном!', + status=status.HTTP_400_BAD_REQUEST) + else: + return fav_recipe.delete() diff --git a/backend/foodgram/__init__.py b/backend/foodgram/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/foodgram/asgi.py b/backend/foodgram/asgi.py new file mode 100644 index 0000000..fa20cbb --- /dev/null +++ b/backend/foodgram/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for foodgram project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'foodgram.settings') + +application = get_asgi_application() diff --git a/backend/foodgram/settings.py b/backend/foodgram/settings.py new file mode 100644 index 0000000..661caac --- /dev/null +++ b/backend/foodgram/settings.py @@ -0,0 +1,151 @@ +""" +Django settings for foodgram project. + +Generated by 'django-admin startproject' using Django 4.2.4. + +For more information on this file, see +https://docs.djangoproject.com/en/4.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/4.2/ref/settings/ +""" +import os +from pathlib import Path + +from dotenv import load_dotenv + +load_dotenv() + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ + +SECRET_KEY = os.getenv('SECRET_KEY', 'django-secret-key') + +DEBUG = os.getenv('DEBUG', 'False').lower() == 'true' +# DEBUG = True + +ALLOWED_HOSTS = os.getenv('ALLOWED_HOSTS', default='localhost').split(', ') + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'rest_framework.authtoken', + 'rest_framework', + 'djoser', + 'users.apps.UsersConfig', + 'api.apps.ApiConfig', + 'recipes.apps.RecipesConfig', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'foodgram.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'foodgram.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/4.2/ref/settings/#databases + + +if DEBUG: + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } + } +else: + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': os.getenv('POSTGRES_DB', 'django'), + 'USER': os.getenv('POSTGRES_USER', 'django'), + 'PASSWORD': os.getenv('POSTGRES_PASSWORD', ''), + 'HOST': os.getenv('DB_HOST', ''), + 'PORT': os.getenv('DB_PORT', 5432) + } + } + + +AUTH_USER_MODEL = 'users.User' + +# Password validation +# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/4.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/4.2/howto/static-files/ + +STATIC_URL = '/static/' +STATIC_ROOT = BASE_DIR / 'collected_static' + +MEDIA_URL = '/media/' +MEDIA_ROOT = os.path.join(BASE_DIR, 'media') + +# Default primary key field type +# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/backend/foodgram/urls.py b/backend/foodgram/urls.py new file mode 100644 index 0000000..9666b6b --- /dev/null +++ b/backend/foodgram/urls.py @@ -0,0 +1,7 @@ +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('api/', include('api.urls')), +] diff --git a/backend/foodgram/wsgi.py b/backend/foodgram/wsgi.py new file mode 100644 index 0000000..edb18d5 --- /dev/null +++ b/backend/foodgram/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for foodgram project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'foodgram.settings') + +application = get_wsgi_application() diff --git a/backend/manage.py b/backend/manage.py new file mode 100644 index 0000000..efc1f7f --- /dev/null +++ b/backend/manage.py @@ -0,0 +1,21 @@ +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'foodgram.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/backend/recipes/__init__.py b/backend/recipes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/recipes/admin.py b/backend/recipes/admin.py new file mode 100644 index 0000000..e1c4fb8 --- /dev/null +++ b/backend/recipes/admin.py @@ -0,0 +1,27 @@ +from django.contrib import admin + +from recipes.models import (Ingredient, + Tag, + Recipe, + Favorite, + ShoppingCart, + ) +from users.models import User + +class RecipeAdmin(admin.ModelAdmin): + list_display = ('id', 'name', 'text', 'author',) + list_filter = ('pub_date', 'author', 'name', 'tags',) + empty_value_display = '-пусто-' + + +class IngredientAdmin(admin.ModelAdmin): + list_display = ('name', 'measurement_unit',) + list_filter = ('name',) + + +admin.site.register(Recipe, RecipeAdmin) +admin.site.register(Ingredient, IngredientAdmin) +admin.site.register(Tag) +admin.site.register(Favorite) +admin.site.register(ShoppingCart) +admin.site.register(User) diff --git a/backend/recipes/apps.py b/backend/recipes/apps.py new file mode 100644 index 0000000..3b0e048 --- /dev/null +++ b/backend/recipes/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class RecipesConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'recipes' diff --git a/backend/recipes/migrations/0001_initial.py b/backend/recipes/migrations/0001_initial.py new file mode 100644 index 0000000..88548cf --- /dev/null +++ b/backend/recipes/migrations/0001_initial.py @@ -0,0 +1,124 @@ +# Generated by Django 4.2.4 on 2023-08-29 18:38 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Ingredient', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=150, verbose_name='Название ингредиента')), + ('measurement_unit', models.CharField(max_length=150, verbose_name='Единица измерения')), + ], + options={ + 'verbose_name': 'Ингредиент', + 'verbose_name_plural': 'Ингредиенты', + 'ordering': ['name'], + }, + ), + migrations.CreateModel( + name='Recipe', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, verbose_name='Название рецепта')), + ('image', models.ImageField(blank=True, upload_to='recipes/', verbose_name='Картинка')), + ('text', models.TextField(help_text='Введите текст рецепта', verbose_name='Текст рецепта')), + ('cooking_time', models.PositiveSmallIntegerField(default=1, verbose_name='Время приготовления')), + ('pub_date', models.DateTimeField(auto_now_add=True, verbose_name='Дата публикации')), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipes', to=settings.AUTH_USER_MODEL, verbose_name='Автор')), + ('ingredients', models.ManyToManyField(related_name='recipes', to='recipes.ingredient', verbose_name='Название ингредиента')), + ], + options={ + 'verbose_name': 'Рецепт', + 'verbose_name_plural': 'Рецепты', + 'ordering': ['-pub_date'], + }, + ), + migrations.CreateModel( + name='Tag', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=150, verbose_name='Название тега')), + ('color', models.CharField(max_length=10, verbose_name='Цветовой код')), + ('slug', models.SlugField(unique=True, verbose_name='Слаг')), + ], + options={ + 'verbose_name': 'Тег', + 'verbose_name_plural': 'Теги', + 'ordering': ['name'], + }, + ), + migrations.CreateModel( + name='ShoppingCart', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('recipe', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shopping_cart', to='recipes.recipe', verbose_name='Рецепт')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shopping_cart', to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')), + ], + options={ + 'verbose_name': 'Список покупок', + 'verbose_name_plural': 'Списки покупок', + 'ordering': ['recipe'], + }, + ), + migrations.CreateModel( + name='RecipeTag', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('recipe', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recipes.recipe')), + ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recipes.tag')), + ], + options={ + 'ordering': ['recipe'], + }, + ), + migrations.CreateModel( + name='RecipeIngredient', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('amount', models.PositiveSmallIntegerField(verbose_name='Количество')), + ('ingredient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recipes.ingredient')), + ('recipe', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recipes.recipe')), + ], + options={ + 'ordering': ['recipe'], + }, + ), + migrations.AddField( + model_name='recipe', + name='tags', + field=models.ManyToManyField(related_name='recipes', to='recipes.tag', verbose_name='Теги'), + ), + migrations.CreateModel( + name='Follow', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='following', to=settings.AUTH_USER_MODEL, verbose_name='Автор')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='follower', to=settings.AUTH_USER_MODEL, verbose_name='Подписчик')), + ], + ), + migrations.CreateModel( + name='Favorite', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('recipe', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorites', to='recipes.recipe', verbose_name='Рецепт')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorites', to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')), + ], + options={ + 'verbose_name': 'Избранное', + 'verbose_name_plural': 'Избранное', + 'ordering': ['recipe'], + }, + ), + ] diff --git a/backend/recipes/migrations/__init__.py b/backend/recipes/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/recipes/models.py b/backend/recipes/models.py new file mode 100644 index 0000000..e37dcdd --- /dev/null +++ b/backend/recipes/models.py @@ -0,0 +1,190 @@ +from django.db import models +# from django.core.validators import MinValueValidator + +from users.models import User + + +class Ingredient(models.Model): + """Модель ингредиента.""" + name = models.CharField(max_length=150, + verbose_name='Название ингредиента') + measurement_unit = models.CharField(max_length=150, + verbose_name='Единица измерения') + # добавить выпадающий список + + class Meta: + verbose_name = 'Ингредиент' + verbose_name_plural = 'Ингредиенты' + ordering = ['name'] + + def __str__(self): + return f'{self.name}, {self.measurement_unit}' + + +class Tag(models.Model): + """Модель тега.""" + name = models.CharField(max_length=150, verbose_name='Название тега') + color = models.CharField(max_length=10, verbose_name='Цветовой код') + slug = models.SlugField(unique=True, verbose_name='Слаг') + + class Meta: + ordering = ['name'] + verbose_name = 'Тег' + verbose_name_plural = 'Теги' + + def __str__(self): + return self.name + + +class Recipe(models.Model): + """Модель рецепта.""" + tags = models.ManyToManyField( + Tag, + related_name='recipes', + verbose_name='Теги', + ) + author = models.ForeignKey( + User, + on_delete=models.CASCADE, + related_name='recipes', + verbose_name='Автор', + ) + name = models.CharField( + max_length=100, + verbose_name='Название рецепта', + ) + image = models.ImageField( + 'Картинка', + upload_to='recipes/', + blank=True + ) + text = models.TextField(verbose_name='Текст рецепта', + help_text='Введите текст рецепта', + ) + ingredients = models.ManyToManyField( + Ingredient, + related_name='recipes', + verbose_name='Название ингредиента', + ) + cooking_time = models.PositiveSmallIntegerField( + verbose_name='Время приготовления', + default=1, + # validators=(MinValueValidator(1, 'Минимум 1 минута')), + ) + pub_date = models.DateTimeField( + verbose_name='Дата публикации', + auto_now_add=True + ) + + class Meta: + ordering = ['-pub_date'] + verbose_name = 'Рецепт' + verbose_name_plural = 'Рецепты' + + def __str__(self): + return self.name + + +class RecipeIngredient(models.Model): + """ + Вспомогательная модель. + Для реализаци связи М2М между моделями Recipe + и Ingredient. + """ + recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE) + ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE) + amount = models.PositiveSmallIntegerField( + 'Количество', + # validators=[MinValueValidator(1, + # message='Минимальное количество 1!')] + ) + + class Meta: + ordering = ['recipe'] + + def __str__(self): + return f'{self.recipe} {self.ingredient}' + + +class RecipeTag(models.Model): + """ + Вспомогательная модель. + Для реализаци связи М2М между моделями Recipe + и Tag. + """ + recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE) + tag = models.ForeignKey(Tag, on_delete=models.CASCADE) + + class Meta: + ordering = ['recipe'] + + def __str__(self): + return f'{self.recipe} {self.tag}' + + +class Favorite(models.Model): + """Модель избранного.""" + user = models.ForeignKey( + User, + on_delete=models.CASCADE, + related_name='favorites', + verbose_name='Пользователь', + ) + recipe = models.ForeignKey( + Recipe, + on_delete=models.CASCADE, + related_name='favorites', + verbose_name='Рецепт', + ) + + class Meta: + ordering = ['recipe'] + verbose_name = 'Избранное' + verbose_name_plural = 'Избранное' + + def __str__(self): + return f'Рецепт {self.recipe} в избранном у {self.user}' + + +class ShoppingCart(models.Model): + """Модель корзины покупок.""" + user = models.ForeignKey( + User, + on_delete=models.CASCADE, + related_name='shopping_cart', + verbose_name='Пользователь', + ) + recipe = models.ForeignKey( + Recipe, + on_delete=models.CASCADE, + related_name='shopping_cart', + verbose_name='Рецепт', + ) + + class Meta: + ordering = ['recipe'] + verbose_name = 'Список покупок' + verbose_name_plural = 'Списки покупок' + + def __str__(self): + return f'Рецепт {self.recipe} в списке покупок у {self.user}' + + +class Follow(models.Model): + """Модель подписки.""" + user = models.ForeignKey( + User, + on_delete=models.CASCADE, + related_name='follower', + verbose_name='Подписчик' + ) + author = models.ForeignKey( + User, + on_delete=models.CASCADE, + related_name='following', + verbose_name='Автор' + ) + + class Meta: + models.UniqueConstraint(fields=['user', 'author'], + name='unique_ff') diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 0000000..cca95b9 --- /dev/null +++ b/backend/requirements.txt @@ -0,0 +1,9 @@ +Django==3.2.3 +djoser==2.1.0 +webcolors==1.11.1 +psycopg2-binary==2.9.3 +Pillow==9.0.0 +PyYAML==6.0 +python-dotenv==1.0.0 +gunicorn==20.1.0 +requests==2.26.0 diff --git a/backend/users/__init__.py b/backend/users/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/users/admin.py b/backend/users/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/backend/users/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/users/apps.py b/backend/users/apps.py new file mode 100644 index 0000000..72b1401 --- /dev/null +++ b/backend/users/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class UsersConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'users' diff --git a/backend/users/migrations/0001_initial.py b/backend/users/migrations/0001_initial.py new file mode 100644 index 0000000..2012a9e --- /dev/null +++ b/backend/users/migrations/0001_initial.py @@ -0,0 +1,31 @@ +# Generated by Django 3.2.3 on 2023-08-29 11:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('email', models.EmailField(max_length=100, unique=True, verbose_name='e-mail')), + ('username', models.CharField(max_length=40, verbose_name='Имя пользователя')), + ('first_name', models.CharField(max_length=40, verbose_name='Имя')), + ('last_name', models.CharField(max_length=40, verbose_name='Фамилия')), + ], + options={ + 'verbose_name': 'Пользователь', + 'verbose_name_plural': 'Пользователи', + 'ordering': ['id'], + }, + ), + ] diff --git a/backend/users/migrations/0002_alter_user_managers_user_date_joined_user_groups_and_more.py b/backend/users/migrations/0002_alter_user_managers_user_date_joined_user_groups_and_more.py new file mode 100644 index 0000000..7aaaea7 --- /dev/null +++ b/backend/users/migrations/0002_alter_user_managers_user_date_joined_user_groups_and_more.py @@ -0,0 +1,72 @@ +# Generated by Django 4.2.4 on 2023-08-29 18:38 + +import django.contrib.auth.models +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('auth', '0012_alter_user_first_name_max_length'), + ('users', '0001_initial'), + ] + + operations = [ + migrations.AlterModelManagers( + name='user', + managers=[ + ('objects', django.contrib.auth.models.UserManager()), + ], + ), + migrations.AddField( + model_name='user', + name='date_joined', + field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined'), + ), + migrations.AddField( + model_name='user', + name='groups', + field=models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups'), + ), + migrations.AddField( + model_name='user', + name='is_active', + field=models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active'), + ), + migrations.AddField( + model_name='user', + name='is_staff', + field=models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status'), + ), + migrations.AddField( + model_name='user', + name='is_superuser', + field=models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status'), + ), + migrations.AddField( + model_name='user', + name='user_permissions', + field=models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions'), + ), + migrations.AlterField( + model_name='user', + name='email', + field=models.EmailField(max_length=100, unique=True, verbose_name='email address'), + ), + migrations.AlterField( + model_name='user', + name='first_name', + field=models.CharField(max_length=40), + ), + migrations.AlterField( + model_name='user', + name='last_name', + field=models.CharField(max_length=40), + ), + migrations.AlterField( + model_name='user', + name='username', + field=models.CharField(max_length=40), + ), + ] diff --git a/backend/users/migrations/__init__.py b/backend/users/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/users/models.py b/backend/users/models.py new file mode 100644 index 0000000..b269655 --- /dev/null +++ b/backend/users/models.py @@ -0,0 +1,29 @@ +from django.db import models +from django.contrib.auth.models import AbstractUser + + +class User(AbstractUser): + """Абстрактная модель пользователя.""" + email = models.EmailField( + verbose_name='email address', + max_length=100, + unique=True, + ) + username = models.CharField(max_length=40) + first_name = models.CharField(max_length=40) + last_name = models.CharField(max_length=40) + + USERNAME_FIELD = 'email' + REQUIRED_FIELDS = [ + 'username', + 'first_name', + 'last_name', + ] + + class Meta: + ordering = ['id'] + verbose_name = 'Пользователь' + verbose_name_plural = 'Пользователи' + + def __str__(self): + return self.username diff --git a/backend/users/views.py b/backend/users/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/backend/users/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. From 7e395188bdf5d93be6bc5fd896a0f4b8a8d45fd5 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 5 Sep 2023 22:05:29 +0300 Subject: [PATCH 02/48] changes in views --- backend/api/serializers.py | 10 +---- backend/api/urls.py | 16 ++++--- backend/api/views.py | 40 +++++++++++------- .../recipes/photo_2023-08-23_14-02-41.jpg | Bin 0 -> 90801 bytes backend/recipes/admin.py | 11 ++++- 5 files changed, 47 insertions(+), 30 deletions(-) create mode 100644 backend/media/recipes/photo_2023-08-23_14-02-41.jpg diff --git a/backend/api/serializers.py b/backend/api/serializers.py index 0dd2852..8c35c4c 100644 --- a/backend/api/serializers.py +++ b/backend/api/serializers.py @@ -27,8 +27,6 @@ def to_internal_value(self, data): class UserSerializer(serializers.ModelSerializer): - ... - class Meta: fields = '' model = User @@ -49,8 +47,8 @@ class Meta: class RecipeSerializer(serializers.ModelSerializer): - - ... + image = Base64ImageField(required=False, allow_null=True) + author = SlugRelatedField(slug_field='username', read_only=True) class Meta: fields = '__all__' @@ -59,8 +57,6 @@ class Meta: class FavoriteSerializer(serializers.ModelSerializer): - ... - class Meta: fields = '__all__' model = Favorite @@ -68,8 +64,6 @@ class Meta: class ShoppingCartSerializer(serializers.ModelSerializer): - ... - class Meta: fields = '__all__' model = ShoppingCart diff --git a/backend/api/urls.py b/backend/api/urls.py index d5d5574..8175c1f 100644 --- a/backend/api/urls.py +++ b/backend/api/urls.py @@ -4,15 +4,21 @@ from api.views import (IngredientViewSet, TagViewSet, FollowViewSet, + RecipeViewSet, + FavoriteViewSet ) app_name = 'api' -v1_router = DefaultRouter() -v1_router.register('ingredients', IngredientViewSet) -v1_router.register('tags', TagViewSet) -v1_router.register('follow', FollowViewSet, basename='follow') +router = DefaultRouter() +router.register('ingredients', IngredientViewSet) +router.register('tags', TagViewSet) +router.register('subscriptions', FollowViewSet, basename='subscription') +router.register('recipes', RecipeViewSet, basename='recipe') +router.register( + r'recipes/(?P\d+)/favorite', FavoriteViewSet, + basename='favorite') urlpatterns = [ - path('v1/', include(v1_router.urls)), + path('', include(router.urls)), ] diff --git a/backend/api/views.py b/backend/api/views.py index ac1c2fa..a050093 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -1,7 +1,7 @@ from rest_framework import viewsets, status from django.shortcuts import get_object_or_404 from rest_framework.viewsets import ReadOnlyModelViewSet -from rest_framework.permissions import (AllowAny, +from rest_framework.permissions import (IsAuthenticatedOrReadOnly, IsAuthenticated) from rest_framework import filters from rest_framework import mixins @@ -43,7 +43,13 @@ class TagViewSet(ReadOnlyModelViewSet): permission_classes = [IsAmdinOrReadOnly] +class RecipeViewSet(viewsets.ModelViewSet): + serializer_class = RecipeSerializer + queryset = Recipe.objects.all() + permission_classes = [IsAuthenticatedOrReadOnly] + def perform_create(self, serializer): + serializer.save(author=self.request.user) class FollowViewSet(mixins.CreateModelMixin, @@ -54,18 +60,17 @@ class FollowViewSet(mixins.CreateModelMixin, Просмотр, подписка на пользователя, удаление подписки.""" serializer_class = FollowSerializer - permission_classes = [IsAuthenticated, IsOwnerOrReadOnly] + # permission_classes = [IsAuthenticated, IsOwnerOrReadOnly] filter_backends = (filters.SearchFilter, ) search_fields = ('user__username', 'following__username') def get_queryset(self): return self.request.user.follower.all() - def perform_create(self, username): + def perform_create(self, username, serializer): author = get_object_or_404(User, username=username) if author != self.request.user: - return Follow.objects.get_or_create(user=self.request.user, - author=author) + return serializer.save(user=self.request.user) return Response('На себя подписка невозможна!', status=status.HTTP_400_BAD_REQUEST) @@ -88,17 +93,20 @@ def get_queryset(self): user = self.request.user return Favorite.objects.filter(user=user) - def perform_create(self): - user = self.request.user - fav_recipe = get_object_or_404( - Recipe, pk=id) - if Favorite.objects.filter( - user=user, - recipe=fav_recipe).exists(): - return Response('Рецепт уже в избранном!', - status=status.HTTP_400_BAD_REQUEST) - else: - Favorite.objects.create(user=user, recipe=fav_recipe) + def perform_create(self, serializer): + serializer.save(user=self.request.user) + + # def perform_create(self): + # user = self.request.user + # fav_recipe = get_object_or_404( + # Recipe, pk=id) + # if Favorite.objects.filter( + # user=user, + # recipe=fav_recipe).exists(): + # return Response('Рецепт уже в избранном!', + # status=status.HTTP_400_BAD_REQUEST) + # else: + # Favorite.objects.create(user=user, recipe=fav_recipe) def delete(self): user = self.request.user diff --git a/backend/media/recipes/photo_2023-08-23_14-02-41.jpg b/backend/media/recipes/photo_2023-08-23_14-02-41.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b566d5426a98a69dda8582494a5a3ff771aa1cf GIT binary patch literal 90801 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 Date: Wed, 6 Sep 2023 14:53:20 +0300 Subject: [PATCH 03/48] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9?= =?UTF-8?q?=D0=BA=D0=B8=20djoser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/serializers.py | 10 +++++----- backend/api/urls.py | 2 ++ backend/api/views.py | 33 +++++++++++++++++++-------------- backend/foodgram/settings.py | 7 +++++++ backend/recipes/models.py | 6 ++++-- 5 files changed, 37 insertions(+), 21 deletions(-) diff --git a/backend/api/serializers.py b/backend/api/serializers.py index 8c35c4c..45b2c47 100644 --- a/backend/api/serializers.py +++ b/backend/api/serializers.py @@ -75,24 +75,24 @@ class FollowSerializer(serializers.ModelSerializer): read_only=True, default=serializers.CurrentUserDefault() ) - following = serializers.SlugRelatedField( + author = serializers.SlugRelatedField( slug_field='username', queryset=User.objects.all() ) class Meta: - fields = ('user', 'following', ) + fields = ('user', 'author', ) model = Follow - read_only_fields = ('owner',) + # read_only_fields = ('owner',) validators = [ UniqueTogetherValidator( queryset=Follow.objects.all(), - fields=('user', 'following') + fields=('user', 'author') ) ] def validate(self, data): - if self.context['request'].user == data['following']: + if self.context['request'].user == data['author']: raise serializers.ValidationError( 'Подписка на самого себя невозможна!' ) diff --git a/backend/api/urls.py b/backend/api/urls.py index 8175c1f..b0f95b7 100644 --- a/backend/api/urls.py +++ b/backend/api/urls.py @@ -21,4 +21,6 @@ urlpatterns = [ path('', include(router.urls)), + path('auth/', include('djoser.urls')), + path('auth/', include('djoser.urls.authtoken')), ] diff --git a/backend/api/views.py b/backend/api/views.py index a050093..921ecf8 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -60,26 +60,31 @@ class FollowViewSet(mixins.CreateModelMixin, Просмотр, подписка на пользователя, удаление подписки.""" serializer_class = FollowSerializer - # permission_classes = [IsAuthenticated, IsOwnerOrReadOnly] + permission_classes = [IsAuthenticated, IsOwnerOrReadOnly] filter_backends = (filters.SearchFilter, ) search_fields = ('user__username', 'following__username') def get_queryset(self): return self.request.user.follower.all() + + def perform_create(self, serializer): + serializer.save(user=self.request.user) - def perform_create(self, username, serializer): - author = get_object_or_404(User, username=username) - if author != self.request.user: - return serializer.save(user=self.request.user) - return Response('На себя подписка невозможна!', - status=status.HTTP_400_BAD_REQUEST) - - def delete(self, username): - author = get_object_or_404(User, username=username) - follower = Follow.objects.filter(user=self.request.user, - author=author) - if follower.exists(): - return follower.delete() + def delete(self, serializer): + serializer.delete(user=self.request.user) + + # author = get_object_or_404(User, username=username) + # if author != self.request.user: + # return serializer.save(user=self.request.user) + # return Response('На себя подписка невозможна!', + # status=status.HTTP_400_BAD_REQUEST) + + # def delete(self, username): + # author = get_object_or_404(User, username=username) + # follower = Follow.objects.filter(user=self.request.user, + # author=author) + # if follower.exists(): + # return follower.delete() class FavoriteViewSet(mixins.CreateModelMixin, diff --git a/backend/foodgram/settings.py b/backend/foodgram/settings.py index 661caac..c1e6c32 100644 --- a/backend/foodgram/settings.py +++ b/backend/foodgram/settings.py @@ -149,3 +149,10 @@ # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + + +REST_FRAMEWORK = { + 'DEFAULT_AUTHENTICATION_CLASSES': ( + 'rest_framework.authentication.TokenAuthentication', + ), +} \ No newline at end of file diff --git a/backend/recipes/models.py b/backend/recipes/models.py index e37dcdd..a7315b5 100644 --- a/backend/recipes/models.py +++ b/backend/recipes/models.py @@ -23,8 +23,10 @@ def __str__(self): class Tag(models.Model): """Модель тега.""" - name = models.CharField(max_length=150, verbose_name='Название тега') - color = models.CharField(max_length=10, verbose_name='Цветовой код') + name = models.CharField(max_length=150, unique=True, + verbose_name='Название тега') + color = models.CharField(max_length=10, unique=True, + verbose_name='Цветовой код') slug = models.SlugField(unique=True, verbose_name='Слаг') class Meta: From 94f83e0a46d94ff4de7c4e3ee61dae0b9ceaa21c Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 9 Sep 2023 19:52:29 +0300 Subject: [PATCH 04/48] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B2=D1=81=D0=BF=D0=BE=D0=BC=D0=BE=D0=B3?= =?UTF-8?q?=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=BC=D0=BE?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D1=8C=20=D0=B4=D0=BB=D1=8F=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B2=D0=BE=D0=B4=D0=B0=20=D0=B8=D0=BD=D0=B3=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B8=D0=B5=D0=BD=D1=82=D0=BE=D0=B2=20=D0=B2=20=D1=80=D0=B5?= =?UTF-8?q?=D1=86=D0=B5=D0=BF=D1=82=D0=B0=D1=85,=20=D0=B2=D1=8C=D1=8E?= =?UTF-8?q?=D1=81=D0=B5=D1=82=20=D0=B8=20=D1=81=D0=B5=D1=80=D0=B8=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D0=B7=D0=B0=D1=82=D0=BE=D1=80=D1=8B=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D1=80=D0=B5=D1=86=D0=B5=D0=BF=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=20=D0=B8=D0=B7=D0=B1=D1=80=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/serializers.py | 173 ++++++++++++++++-- backend/api/urls.py | 15 +- backend/api/views.py | 147 ++++++++------- backend/foodgram/settings.py | 19 ++ backend/recipes/admin.py | 15 +- ...tag_recipe_alter_recipetag_tag_and_more.py | 34 ++++ ...er_recipeingredient_ingredient_and_more.py | 33 ++++ .../0004_subscribe_delete_follow.py | 27 +++ .../migrations/0005_alter_favorite_recipe.py | 19 ++ backend/recipes/models.py | 40 +++- 10 files changed, 413 insertions(+), 109 deletions(-) create mode 100644 backend/recipes/migrations/0002_alter_recipetag_recipe_alter_recipetag_tag_and_more.py create mode 100644 backend/recipes/migrations/0003_alter_recipeingredient_ingredient_and_more.py create mode 100644 backend/recipes/migrations/0004_subscribe_delete_follow.py create mode 100644 backend/recipes/migrations/0005_alter_favorite_recipe.py diff --git a/backend/api/serializers.py b/backend/api/serializers.py index 45b2c47..c062cf7 100644 --- a/backend/api/serializers.py +++ b/backend/api/serializers.py @@ -2,16 +2,19 @@ import webcolors from django.core.files.base import ContentFile -from rest_framework import serializers +from djoser.serializers import (PasswordSerializer, UserCreateSerializer, + UserSerializer) +from rest_framework import serializers, exceptions from rest_framework.relations import SlugRelatedField -from rest_framework.validators import UniqueTogetherValidator +from rest_framework.fields import IntegerField from recipes.models import (Ingredient, Tag, Recipe, Favorite, ShoppingCart, - Follow) + Subscribe, + IngredientAmount) from users.models import User @@ -25,20 +28,61 @@ def to_internal_value(self, data): return super().to_internal_value(data) -class UserSerializer(serializers.ModelSerializer): +class UserCreateSerializer(UserCreateSerializer): + """Создание пользователя с обязательными полями.""" + class Meta: + model = User + fields = ('email', 'username', 'first_name', 'last_name', 'password') + required_fields = ( + 'email', + 'username', + 'first_name', + 'last_name', + 'password' + ) + + +class UserReadSerializer(UserSerializer): + """Страница пользователя.""" + is_subscribed = serializers.SerializerMethodField class Meta: - fields = '' model = User + fields = ('id', 'email', 'username', 'first_name', + 'last_name', ) + + def get_is_subcribed(self, obj): + request = self.context.get('request') + if request.user.is_anonymous: + return False + return Subscribe.objects.filter(user=request.user, author=obj).exists() class IngredientSerializer(serializers.ModelSerializer): - """Ингредиенты.""" + """Ингредиенты в рецепте.""" + class Meta: fields = '__all__' model = Ingredient +class IngredientsInRecipeSerializer(serializers.ModelSerializer): + """Игредиенты в рецепте.""" + id = serializers.ReadOnlyField( + source='ingredient.id', + ) + name = serializers.ReadOnlyField( + source='ingredient.name', + ) + measurement_unit = serializers.ReadOnlyField( + source='ingredient.measurement_unit', + ) + + class Meta: + model = IngredientAmount + fields = ('id', 'name', 'measurement_unit', 'amount') + + class TagSerializer(serializers.ModelSerializer): """Теги.""" class Meta: @@ -46,20 +90,49 @@ class Meta: model = Tag -class RecipeSerializer(serializers.ModelSerializer): +class IngredientInRecipeWriteSerializer(serializers.ModelSerializer): + id = IntegerField(write_only=True) + + class Meta: + model = IngredientAmount + fields = ('id', 'amount') + + +class RecipeCreateSerializer(serializers.ModelSerializer): image = Base64ImageField(required=False, allow_null=True) author = SlugRelatedField(slug_field='username', read_only=True) + ingredients = IngredientInRecipeWriteSerializer(many=True) + tags = serializers.PrimaryKeyRelatedField( + queryset=Tag.objects.all(), + many=True + ) + cooking_time = serializers.IntegerField() + + def validate_ingredients(self, value): + if not value: + raise exceptions.ValidationError( + 'Добавьте ингредиент.' + ) + + ingredients = [item['id'] for item in value] # посмотреть и переписать + for ingredient in ingredients: + if ingredients.count(ingredient) > 1: + raise exceptions.ValidationError( + 'Такой ингредиент уже добавлен.' + ) + + return value class Meta: - fields = '__all__' model = Recipe + exclude = ('pub_date',) -class FavoriteSerializer(serializers.ModelSerializer): +# class FavoriteSerializer(serializers.ModelSerializer): - class Meta: - fields = '__all__' - model = Favorite +# class Meta: +# fields = '__all__' +# model = Favorite class ShoppingCartSerializer(serializers.ModelSerializer): @@ -82,14 +155,14 @@ class FollowSerializer(serializers.ModelSerializer): class Meta: fields = ('user', 'author', ) - model = Follow + model = Subscribe # read_only_fields = ('owner',) - validators = [ - UniqueTogetherValidator( - queryset=Follow.objects.all(), - fields=('user', 'author') - ) - ] + # validators = [ + # UniqueTogetherValidator( + # queryset=Follow.objects.all(), + # fields=('user', 'author') + # ) + # ] def validate(self, data): if self.context['request'].user == data['author']: @@ -109,3 +182,65 @@ def to_internal_value(self, data): except ValueError: raise serializers.ValidationError('Для этого цвета нет имени') return data + + +class RecipeReadSerializer(serializers.ModelSerializer): + """Просмотр рецепта.""" + tags = TagSerializer( + many=True, + # source='recipe_in_tags' + ) + ingredients = IngredientsInRecipeSerializer( + many=True, + source='recipe' + ) + author = UserReadSerializer() + is_favorited = serializers.SerializerMethodField + is_in_shopping_cart = serializers.SerializerMethodField + + class Meta: + model = Recipe + fields = ( + 'id', 'tags', 'author', 'ingredients', + 'name', 'image', 'text', 'cooking_time', + ) + + def get_is_favorited(self, obj): + request = self.context.get('request') + if not request or request.user.is_anonymous: + return False + return Favorite.objects.filter(recipe=obj, + user=request.user).exists() + + def get_is_in_shopping_cart(self, obj): + request = self.context.get('request') + if not request or request.user.is_anonymous: + return False + return ShoppingCart.objects.filter(recipe=obj, + user=request.user).exists() + +# class SubscribeSerializer(serializers.ModelSerializer): +# email = serializers.CharField( +# source='author.email', +# read_only=True) +# id = serializers.IntegerField( +# source='author.id', +# read_only=True) +# username = serializers.CharField( +# source='author.username', +# read_only=True) +# first_name = serializers.CharField( +# source='author.first_name', +# read_only=True) +# last_name = serializers.CharField( +# source='author.last_name', +# read_only=True) +# recipes = serializers.SerializerMethodField() +# is_subscribed = serializers.SerializerMethodField() +# recipes_count = serializers.ReadOnlyField( +# source='author.recipe.count') + +# class Meta: +# model = Follow + + diff --git a/backend/api/urls.py b/backend/api/urls.py index b0f95b7..5173baf 100644 --- a/backend/api/urls.py +++ b/backend/api/urls.py @@ -3,9 +3,9 @@ from api.views import (IngredientViewSet, TagViewSet, - FollowViewSet, + SubscribeViewSet, RecipeViewSet, - FavoriteViewSet + # FavoriteViewSet ) app_name = 'api' @@ -13,14 +13,15 @@ router = DefaultRouter() router.register('ingredients', IngredientViewSet) router.register('tags', TagViewSet) -router.register('subscriptions', FollowViewSet, basename='subscription') +# router.register('subscriptions', FollowViewSet, basename='subscription') router.register('recipes', RecipeViewSet, basename='recipe') -router.register( - r'recipes/(?P\d+)/favorite', FavoriteViewSet, - basename='favorite') +# router.register( +# r'recipes/(?P\d+)/favorite', FavoriteViewSet, +# basename='favorite') + urlpatterns = [ path('', include(router.urls)), - path('auth/', include('djoser.urls')), + path('', include('djoser.urls')), path('auth/', include('djoser.urls.authtoken')), ] diff --git a/backend/api/views.py b/backend/api/views.py index 921ecf8..72563a8 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -1,32 +1,49 @@ -from rest_framework import viewsets, status +from rest_framework import viewsets, status, exceptions from django.shortcuts import get_object_or_404 from rest_framework.viewsets import ReadOnlyModelViewSet from rest_framework.permissions import (IsAuthenticatedOrReadOnly, - IsAuthenticated) + IsAuthenticated, + AllowAny, + SAFE_METHODS) from rest_framework import filters from rest_framework import mixins from rest_framework.filters import SearchFilter from rest_framework.response import Response +from djoser.views import UserViewSet +from rest_framework.decorators import action -from api.serializers import (UserSerializer, +from api.serializers import (UserCreateSerializer, + UserReadSerializer, IngredientSerializer, TagSerializer, - RecipeSerializer, - FavoriteSerializer, + RecipeCreateSerializer, + # FavoriteSerializer, ShoppingCartSerializer, - FollowSerializer + FollowSerializer, + RecipeReadSerializer ) from recipes.models import (Ingredient, Tag, Recipe, Favorite, ShoppingCart, - Follow) + Subscribe) from users.models import User from api.permissions import (IsOwnerOrReadOnly, IsAmdinOrReadOnly) +class CustomUserViewSet(UserViewSet): + """Вьюсет для просмотра профиля и создания пользователя.""" + queryset = User.objects.all() + permission_classes = [IsAuthenticatedOrReadOnly, ] + + def get_serializer_class(self): + if self.action == 'create': + return UserCreateSerializer + return UserReadSerializer + + class IngredientViewSet(ReadOnlyModelViewSet): """Вьюсет для просмотра ингредиентов.""" queryset = Ingredient.objects.all() @@ -44,83 +61,75 @@ class TagViewSet(ReadOnlyModelViewSet): class RecipeViewSet(viewsets.ModelViewSet): - serializer_class = RecipeSerializer + """Вьюсет рецепта. + Просмотр, создание, редактирование.""" queryset = Recipe.objects.all() - permission_classes = [IsAuthenticatedOrReadOnly] + permission_classes = [AllowAny] def perform_create(self, serializer): serializer.save(author=self.request.user) - -class FollowViewSet(mixins.CreateModelMixin, - mixins.ListModelMixin, - mixins.DestroyModelMixin, - viewsets.GenericViewSet): + def get_serializer_class(self): + if self.request.method in SAFE_METHODS: + return RecipeReadSerializer + return RecipeCreateSerializer + + @action( + detail=True, + methods=['post', 'delete'], + permission_classes=[IsAuthenticated] + ) + def favorite(self, request, pk): + if request.method == 'POST': + if Favorite.objects.filter(user=request.user, + recipe__id=pk).exists(): + return Response({'errors': 'Рецепт уже добавлен!'}, + status=status.HTTP_400_BAD_REQUEST) + recipe = get_object_or_404(Recipe, id=pk) + Favorite.objects.create(user=request.user, recipe=recipe) + serializer = RecipeReadSerializer(recipe) + return Response(serializer.data, status=status.HTTP_201_CREATED) + else: + fav_rec = Favorite.objects.filter(user=request.user, recipe__id=pk) + if fav_rec.exists(): + fav_rec.delete() + return Response( + {'message': 'Рецепт удален из избранного!'}, + status=status.HTTP_204_NO_CONTENT) + return Response( + {'errors': 'Рецепт уже удален!'}, + status=status.HTTP_400_BAD_REQUEST) + + +class SubscribeViewSet(mixins.CreateModelMixin, + mixins.ListModelMixin, + mixins.DestroyModelMixin, + viewsets.GenericViewSet): """Вьюсет для подписок. Просмотр, подписка на пользователя, удаление подписки.""" serializer_class = FollowSerializer permission_classes = [IsAuthenticated, IsOwnerOrReadOnly] filter_backends = (filters.SearchFilter, ) - search_fields = ('user__username', 'following__username') + search_fields = ('user__username', 'subscribing__username') def get_queryset(self): - return self.request.user.follower.all() + return self.request.user.subscriber.all() def perform_create(self, serializer): serializer.save(user=self.request.user) - def delete(self, serializer): - serializer.delete(user=self.request.user) - - # author = get_object_or_404(User, username=username) - # if author != self.request.user: - # return serializer.save(user=self.request.user) - # return Response('На себя подписка невозможна!', - # status=status.HTTP_400_BAD_REQUEST) - - # def delete(self, username): + # def destroy(self, serializer): # author = get_object_or_404(User, username=username) - # follower = Follow.objects.filter(user=self.request.user, - # author=author) - # if follower.exists(): - # return follower.delete() - - -class FavoriteViewSet(mixins.CreateModelMixin, - mixins.DestroyModelMixin, - viewsets.GenericViewSet): - """Вьюсет для добавления рецепта в избранное.""" - serializer_class = FavoriteSerializer - permission_classes = [IsAuthenticated, ] - - def get_queryset(self): - user = self.request.user - return Favorite.objects.filter(user=user) - - def perform_create(self, serializer): - serializer.save(user=self.request.user) - - # def perform_create(self): - # user = self.request.user - # fav_recipe = get_object_or_404( - # Recipe, pk=id) - # if Favorite.objects.filter( - # user=user, - # recipe=fav_recipe).exists(): - # return Response('Рецепт уже в избранном!', - # status=status.HTTP_400_BAD_REQUEST) - # else: - # Favorite.objects.create(user=user, recipe=fav_recipe) - - def delete(self): - user = self.request.user - fav_recipe = get_object_or_404( - Recipe, pk=id) - if not Favorite.objects.filter( - user=user, - recipe=fav_recipe).exists(): - return Response('Рецепт нет в избранном!', - status=status.HTTP_400_BAD_REQUEST) - else: - return fav_recipe.delete() + # if author != self.request.user: + # return serializer.save(user=self.request.user) + # return Response('На себя подписка невозможна!', + # status=status.HTTP_400_BAD_REQUEST) + + # # def delete(self, username): + # # author = get_object_or_404(User, username=username) + # # follower = Follow.objects.filter(user=self.request.user, + # # author=author) + # # if follower.exists(): + # # return follower.delete() + \ No newline at end of file diff --git a/backend/foodgram/settings.py b/backend/foodgram/settings.py index c1e6c32..7fd2287 100644 --- a/backend/foodgram/settings.py +++ b/backend/foodgram/settings.py @@ -152,7 +152,26 @@ REST_FRAMEWORK = { + 'DEFAULT_PERMISSION_CLASSES': [ + 'rest_framework.permissions.AllowAny', + ], + 'DEFAULT_AUTHENTICATION_CLASSES': ( + 'rest_framework.authentication.TokenAuthentication', ), +} + +DJOSER = { + 'SERIALIZERS': { + 'user_create': 'api.serializers.UserCreateSerializer', + 'user': 'api.serializers.UserReadSerializer', + 'current_user': 'api.serializers.UserReadSerializer', + }, + + # 'PERMISSIONS': { + # 'user': ['djoser.permissions.CurrentUserOrAdminOrReadOnly'], + # 'user_list': ['rest_framework.permissions.IsAuthenticatedOrReadOnly'], + # }, + 'HIDE_USERS': False, } \ No newline at end of file diff --git a/backend/recipes/admin.py b/backend/recipes/admin.py index 9ced808..cc5f536 100644 --- a/backend/recipes/admin.py +++ b/backend/recipes/admin.py @@ -5,13 +5,20 @@ Recipe, Favorite, ShoppingCart, - Follow + Subscribe, + IngredientAmount ) from users.models import User +class IngredientAmountAdmin(admin.TabularInline): + model = IngredientAmount + autocomplete_fields = ('ingredient', ) + + class RecipeAdmin(admin.ModelAdmin): - list_display = ('id', 'name', 'text', 'author',) + inlines = (IngredientAmountAdmin,) + list_display = ('id', 'name', 'text', 'author', ) list_filter = ('pub_date', 'author', 'name', 'tags',) empty_value_display = '-пусто-' @@ -19,6 +26,7 @@ class RecipeAdmin(admin.ModelAdmin): class IngredientAdmin(admin.ModelAdmin): list_display = ('name', 'measurement_unit',) list_filter = ('name',) + search_fields = ('name',) class UserAdmin(admin.ModelAdmin): @@ -26,11 +34,10 @@ class UserAdmin(admin.ModelAdmin): list_filter = ('email', 'username',) - admin.site.register(Recipe, RecipeAdmin) admin.site.register(Ingredient, IngredientAdmin) admin.site.register(Tag) admin.site.register(Favorite) admin.site.register(ShoppingCart) admin.site.register(User, UserAdmin) -admin.site.register(Follow) +admin.site.register(Subscribe) diff --git a/backend/recipes/migrations/0002_alter_recipetag_recipe_alter_recipetag_tag_and_more.py b/backend/recipes/migrations/0002_alter_recipetag_recipe_alter_recipetag_tag_and_more.py new file mode 100644 index 0000000..fb04f1b --- /dev/null +++ b/backend/recipes/migrations/0002_alter_recipetag_recipe_alter_recipetag_tag_and_more.py @@ -0,0 +1,34 @@ +# Generated by Django 4.2.4 on 2023-09-08 09:39 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('recipes', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='recipetag', + name='recipe', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipe_in_tags', to='recipes.recipe'), + ), + migrations.AlterField( + model_name='recipetag', + name='tag', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tag_in_recipes', to='recipes.tag'), + ), + migrations.AlterField( + model_name='tag', + name='color', + field=models.CharField(max_length=10, unique=True, verbose_name='Цветовой код'), + ), + migrations.AlterField( + model_name='tag', + name='name', + field=models.CharField(max_length=150, unique=True, verbose_name='Название тега'), + ), + ] diff --git a/backend/recipes/migrations/0003_alter_recipeingredient_ingredient_and_more.py b/backend/recipes/migrations/0003_alter_recipeingredient_ingredient_and_more.py new file mode 100644 index 0000000..9f039e1 --- /dev/null +++ b/backend/recipes/migrations/0003_alter_recipeingredient_ingredient_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.4 on 2023-09-08 09:54 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('recipes', '0002_alter_recipetag_recipe_alter_recipetag_tag_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='recipeingredient', + name='ingredient', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ingr_in_recipes', to='recipes.ingredient'), + ), + migrations.AlterField( + model_name='recipeingredient', + name='recipe', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipe_in_ingr', to='recipes.recipe'), + ), + migrations.CreateModel( + name='IngredientAmount', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('amount', models.PositiveIntegerField(default=1, verbose_name='Количество')), + ('ingredient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ingredient', to='recipes.ingredient')), + ('recipe', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipe', to='recipes.recipe')), + ], + ), + ] diff --git a/backend/recipes/migrations/0004_subscribe_delete_follow.py b/backend/recipes/migrations/0004_subscribe_delete_follow.py new file mode 100644 index 0000000..9bdf2c3 --- /dev/null +++ b/backend/recipes/migrations/0004_subscribe_delete_follow.py @@ -0,0 +1,27 @@ +# Generated by Django 4.2.4 on 2023-09-09 14:13 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('recipes', '0003_alter_recipeingredient_ingredient_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='Subscribe', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subscribing', to=settings.AUTH_USER_MODEL, verbose_name='Автор')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subscriber', to=settings.AUTH_USER_MODEL, verbose_name='Подписчик')), + ], + ), + migrations.DeleteModel( + name='Follow', + ), + ] diff --git a/backend/recipes/migrations/0005_alter_favorite_recipe.py b/backend/recipes/migrations/0005_alter_favorite_recipe.py new file mode 100644 index 0000000..101497a --- /dev/null +++ b/backend/recipes/migrations/0005_alter_favorite_recipe.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.4 on 2023-09-09 15:37 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('recipes', '0004_subscribe_delete_follow'), + ] + + operations = [ + migrations.AlterField( + model_name='favorite', + name='recipe', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorites_recipes', to='recipes.recipe', verbose_name='Рецепт'), + ), + ] diff --git a/backend/recipes/models.py b/backend/recipes/models.py index a7315b5..228abad 100644 --- a/backend/recipes/models.py +++ b/backend/recipes/models.py @@ -93,12 +93,12 @@ class RecipeIngredient(models.Model): Для реализаци связи М2М между моделями Recipe и Ingredient. """ - recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE) - ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE) + recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE, + related_name='recipe_in_ingr') + ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE, + related_name='ingr_in_recipes') amount = models.PositiveSmallIntegerField( 'Количество', - # validators=[MinValueValidator(1, - # message='Минимальное количество 1!')] ) class Meta: @@ -114,8 +114,10 @@ class RecipeTag(models.Model): Для реализаци связи М2М между моделями Recipe и Tag. """ - recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE) - tag = models.ForeignKey(Tag, on_delete=models.CASCADE) + recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE, + related_name='recipe_in_tags') + tag = models.ForeignKey(Tag, on_delete=models.CASCADE, + related_name='tag_in_recipes') class Meta: ordering = ['recipe'] @@ -135,7 +137,7 @@ class Favorite(models.Model): recipe = models.ForeignKey( Recipe, on_delete=models.CASCADE, - related_name='favorites', + related_name='favorites_recipes', verbose_name='Рецепт', ) @@ -172,21 +174,39 @@ def __str__(self): return f'Рецепт {self.recipe} в списке покупок у {self.user}' -class Follow(models.Model): +class Subscribe(models.Model): """Модель подписки.""" user = models.ForeignKey( User, on_delete=models.CASCADE, - related_name='follower', + related_name='subscriber', verbose_name='Подписчик' ) author = models.ForeignKey( User, on_delete=models.CASCADE, - related_name='following', + related_name='subscribing', verbose_name='Автор' ) class Meta: models.UniqueConstraint(fields=['user', 'author'], name='unique_ff') + + +class IngredientAmount(models.Model): + recipe = models.ForeignKey( + Recipe, + on_delete=models.CASCADE, + related_name='recipe', + ) + ingredient = models.ForeignKey( + Ingredient, + on_delete=models.CASCADE, + related_name='ingredient', + ) + amount = models.PositiveIntegerField( + 'Количество', + default=1, + # validators=(MinValueValidator(1, 'Минимум 1'),), + ) From bc9c9f59ae39e1a28e985f17e8a8da1264f55210 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sun, 10 Sep 2023 21:52:05 +0300 Subject: [PATCH 05/48] =?UTF-8?q?=D0=A0=D0=B5=D1=88=D0=B5=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B1=D0=BB=D0=B5=D0=BC=D0=B0=20=D1=81=20?= =?UTF-8?q?=D1=81=D0=B5=D1=80=D0=B8=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B0=D0=BC=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=B1=D1=80=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=B4=D0=BF=D0=B8=D1=81=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/serializers.py | 125 ++++++++++++++++++------------------- backend/api/urls.py | 7 +-- backend/api/views.py | 99 +++++++++++++++++------------ 3 files changed, 121 insertions(+), 110 deletions(-) diff --git a/backend/api/serializers.py b/backend/api/serializers.py index c062cf7..e92ff5d 100644 --- a/backend/api/serializers.py +++ b/backend/api/serializers.py @@ -4,9 +4,10 @@ from django.core.files.base import ContentFile from djoser.serializers import (PasswordSerializer, UserCreateSerializer, UserSerializer) -from rest_framework import serializers, exceptions +from rest_framework import serializers, exceptions, status from rest_framework.relations import SlugRelatedField from rest_framework.fields import IntegerField +from rest_framework.exceptions import ValidationError from recipes.models import (Ingredient, Tag, @@ -44,14 +45,14 @@ class Meta: class UserReadSerializer(UserSerializer): """Страница пользователя.""" - is_subscribed = serializers.SerializerMethodField + is_subscribed = serializers.SerializerMethodField() class Meta: model = User fields = ('id', 'email', 'username', 'first_name', - 'last_name', ) + 'last_name', 'is_subscribed') - def get_is_subcribed(self, obj): + def get_is_subscribed(self, obj): request = self.context.get('request') if request.user.is_anonymous: return False @@ -101,7 +102,7 @@ class Meta: class RecipeCreateSerializer(serializers.ModelSerializer): image = Base64ImageField(required=False, allow_null=True) author = SlugRelatedField(slug_field='username', read_only=True) - ingredients = IngredientInRecipeWriteSerializer(many=True) + ingredients = IngredientInRecipeWriteSerializer(many=True) # проблема с выводом игредиентов tags = serializers.PrimaryKeyRelatedField( queryset=Tag.objects.all(), many=True @@ -128,13 +129,6 @@ class Meta: exclude = ('pub_date',) -# class FavoriteSerializer(serializers.ModelSerializer): - -# class Meta: -# fields = '__all__' -# model = Favorite - - class ShoppingCartSerializer(serializers.ModelSerializer): class Meta: @@ -142,34 +136,12 @@ class Meta: model = ShoppingCart -class FollowSerializer(serializers.ModelSerializer): - user = serializers.SlugRelatedField( - slug_field='username', - read_only=True, - default=serializers.CurrentUserDefault() - ) - author = serializers.SlugRelatedField( - slug_field='username', - queryset=User.objects.all() - ) +class SubscriptionsSerializer(serializers.ModelSerializer): class Meta: - fields = ('user', 'author', ) - model = Subscribe - # read_only_fields = ('owner',) - # validators = [ - # UniqueTogetherValidator( - # queryset=Follow.objects.all(), - # fields=('user', 'author') - # ) - # ] - - def validate(self, data): - if self.context['request'].user == data['author']: - raise serializers.ValidationError( - 'Подписка на самого себя невозможна!' - ) - return data + + ... + class Hex2NameColor(serializers.Field): @@ -188,26 +160,26 @@ class RecipeReadSerializer(serializers.ModelSerializer): """Просмотр рецепта.""" tags = TagSerializer( many=True, - # source='recipe_in_tags' ) ingredients = IngredientsInRecipeSerializer( many=True, source='recipe' ) author = UserReadSerializer() - is_favorited = serializers.SerializerMethodField + is_favorited = serializers.SerializerMethodField() is_in_shopping_cart = serializers.SerializerMethodField class Meta: model = Recipe fields = ( 'id', 'tags', 'author', 'ingredients', + 'is_favorited', 'name', 'image', 'text', 'cooking_time', ) def get_is_favorited(self, obj): request = self.context.get('request') - if not request or request.user.is_anonymous: + if request.user.is_anonymous: return False return Favorite.objects.filter(recipe=obj, user=request.user).exists() @@ -219,28 +191,53 @@ def get_is_in_shopping_cart(self, obj): return ShoppingCart.objects.filter(recipe=obj, user=request.user).exists() -# class SubscribeSerializer(serializers.ModelSerializer): -# email = serializers.CharField( -# source='author.email', -# read_only=True) -# id = serializers.IntegerField( -# source='author.id', -# read_only=True) -# username = serializers.CharField( -# source='author.username', -# read_only=True) -# first_name = serializers.CharField( -# source='author.first_name', -# read_only=True) -# last_name = serializers.CharField( -# source='author.last_name', -# read_only=True) -# recipes = serializers.SerializerMethodField() -# is_subscribed = serializers.SerializerMethodField() -# recipes_count = serializers.ReadOnlyField( -# source='author.recipe.count') - -# class Meta: -# model = Follow +class SubscribeSerializer(serializers.ModelSerializer): + """Информация о подписке. + Данные о пользователе, на которого + сделана подписка.""" + + recipes_count = serializers.SerializerMethodField() + is_subscribed = serializers.SerializerMethodField() + + class Meta: + model = User + fields = ( + 'email', + 'id', + 'username', + 'first_name', + 'last_name', + 'is_subscribed', + # 'recipes', + 'recipes_count', + ) + + def get_recipes_count(self, obj): + return Recipe.objects.filter(author=obj).count() + + def get_is_subscribed(self, obj): + user = self.context['request'].user + if user.is_anonymous: + return False + return Subscribe.objects.filter(user=user, author=obj).exists() + + + + + + + + + + # def get_recipes(self, obj): + # request = self.context.get('request') + # limit_recipes = request.query_params.get('recipes_limit') + # if limit_recipes is not None: + # recipes = obj.recipes.all()[:(int(limit_recipes))] + # else: + # recipes = obj.recipes.all() + # context = {'request': request} + # return FollowRecipeSerializer(recipes, many=True, + # context=context).data diff --git a/backend/api/urls.py b/backend/api/urls.py index 5173baf..c8a79a7 100644 --- a/backend/api/urls.py +++ b/backend/api/urls.py @@ -3,21 +3,18 @@ from api.views import (IngredientViewSet, TagViewSet, - SubscribeViewSet, + CustomUserViewSet, RecipeViewSet, - # FavoriteViewSet ) app_name = 'api' router = DefaultRouter() +router.register('users', CustomUserViewSet, basename='users') router.register('ingredients', IngredientViewSet) router.register('tags', TagViewSet) # router.register('subscriptions', FollowViewSet, basename='subscription') router.register('recipes', RecipeViewSet, basename='recipe') -# router.register( -# r'recipes/(?P\d+)/favorite', FavoriteViewSet, -# basename='favorite') urlpatterns = [ diff --git a/backend/api/views.py b/backend/api/views.py index 72563a8..2525817 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -17,10 +17,10 @@ IngredientSerializer, TagSerializer, RecipeCreateSerializer, - # FavoriteSerializer, ShoppingCartSerializer, - FollowSerializer, - RecipeReadSerializer + RecipeReadSerializer, + SubscribeSerializer, + SubscriptionsSerializer, ) from recipes.models import (Ingredient, Tag, @@ -43,6 +43,56 @@ def get_serializer_class(self): return UserCreateSerializer return UserReadSerializer + @action( + detail=True, + methods=['post', 'delete'], + permission_classes=[IsAuthenticated, ], + url_path='subscribe' + ) + def subscribe(self, request, id=None): + user = self.request.user + author = get_object_or_404(User, pk=id) + if request.method == 'POST': + if user == author: + return Response({'errors': 'На себя подписаться нельзя!'}, + status=status.HTTP_400_BAD_REQUEST) + if Subscribe.objects.filter(user=user, + author=author).exists(): + return Response({'errors': 'Вы уже подписаны на этого пользователя!'}, + status=status.HTTP_400_BAD_REQUEST) + + Subscribe.objects.create(user=user, author=author) + serializer = SubscribeSerializer(author, + context={'request': request} + ) + + return Response(serializer.data, + status=status.HTTP_201_CREATED) + + if request.method == 'DELETE': + subscription = Subscribe.objects.filter(user=user, author=author) + if subscription.exists(): + subscription.delete() + return Response( + {'message': 'Вы больше не подписаны на пользователя'}, + status=status.HTTP_204_NO_CONTENT) + return Response( + {'errors': 'Вы не подписаны на этого пользователя!'}, + status=status.HTTP_400_BAD_REQUEST) + + # @action( + # detail=True, + # permission_classes=[IsAuthenticated, ] + # ) + # def subscriptions(self, request): + # user = request.user + # queryset = User.objects.filter(subscribing__user=user) + # pages = self.paginate_queryset(queryset) + # serializer = SubscriptionsSerializer(pages, + # many=True, + # context={'request': request}) + # return self.get_paginated_response(serializer.data) + class IngredientViewSet(ReadOnlyModelViewSet): """Вьюсет для просмотра ингредиентов.""" @@ -73,7 +123,7 @@ def get_serializer_class(self): if self.request.method in SAFE_METHODS: return RecipeReadSerializer return RecipeCreateSerializer - + @action( detail=True, methods=['post', 'delete'], @@ -87,49 +137,16 @@ def favorite(self, request, pk): status=status.HTTP_400_BAD_REQUEST) recipe = get_object_or_404(Recipe, id=pk) Favorite.objects.create(user=request.user, recipe=recipe) - serializer = RecipeReadSerializer(recipe) + serializer = RecipeReadSerializer(recipe, + context={'request': request}) return Response(serializer.data, status=status.HTTP_201_CREATED) - else: + if request.method == 'DELETE': fav_rec = Favorite.objects.filter(user=request.user, recipe__id=pk) if fav_rec.exists(): fav_rec.delete() return Response( - {'message': 'Рецепт удален из избранного!'}, + {'message': 'Рецепт удален из избранного'}, status=status.HTTP_204_NO_CONTENT) return Response( {'errors': 'Рецепт уже удален!'}, status=status.HTTP_400_BAD_REQUEST) - - -class SubscribeViewSet(mixins.CreateModelMixin, - mixins.ListModelMixin, - mixins.DestroyModelMixin, - viewsets.GenericViewSet): - """Вьюсет для подписок. - Просмотр, подписка на пользователя, - удаление подписки.""" - serializer_class = FollowSerializer - permission_classes = [IsAuthenticated, IsOwnerOrReadOnly] - filter_backends = (filters.SearchFilter, ) - search_fields = ('user__username', 'subscribing__username') - - def get_queryset(self): - return self.request.user.subscriber.all() - - def perform_create(self, serializer): - serializer.save(user=self.request.user) - - # def destroy(self, serializer): - # author = get_object_or_404(User, username=username) - # if author != self.request.user: - # return serializer.save(user=self.request.user) - # return Response('На себя подписка невозможна!', - # status=status.HTTP_400_BAD_REQUEST) - - # # def delete(self, username): - # # author = get_object_or_404(User, username=username) - # # follower = Follow.objects.filter(user=self.request.user, - # # author=author) - # # if follower.exists(): - # # return follower.delete() - \ No newline at end of file From ed09e2a38a2fabd60dd50d020703bf2fe2fa60ad Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 12:16:05 +0300 Subject: [PATCH 06/48] =?UTF-8?q?=D0=B4=D0=BE=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=D0=BD=D0=BE=20=D0=98=D0=B7=D0=B1=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5,=20=D0=A1=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BA=D1=83=D0=BF=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 175 ++++++++++++++++++++++++++++++++++ backend/.dockerignore | 6 ++ backend/api/filters.py | 57 +++++++++++ backend/api/paginations.py | 7 ++ backend/api/serializers.py | 170 +++++++++++++++++++++++---------- backend/api/urls.py | 1 - backend/api/views.py | 125 +++++++++++++++++++----- backend/docs/font.ttf | Bin 0 -> 347988 bytes backend/foodgram/settings.py | 27 +++--- backend/foodgram/urls.py | 8 ++ backend/ingredients.json | 1 + backend/recipes/admin.py | 27 ++++-- backend/recipes/models.py | 3 + backend/recipes/resources.py | 12 +++ backend/requirements.txt | 3 + backend/tags.json | 7 ++ backend/users/models.py | 2 +- docker-compose.production.yml | 43 +++++++++ docker-compose.yml | 47 +++++++++ infra/docker-compose.yml | 42 ++++++-- infra/nginx.conf | 64 +++++++++---- setup copy.cfg | 16 ++++ setup.cfg | 16 ++++ 23 files changed, 737 insertions(+), 122 deletions(-) create mode 100644 .github/workflows/main.yml create mode 100644 backend/.dockerignore create mode 100644 backend/api/filters.py create mode 100644 backend/api/paginations.py create mode 100644 backend/docs/font.ttf create mode 100644 backend/ingredients.json create mode 100644 backend/recipes/resources.py create mode 100644 backend/tags.json create mode 100644 docker-compose.production.yml create mode 100644 docker-compose.yml create mode 100644 setup copy.cfg create mode 100644 setup.cfg diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..2f4b7dd --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,175 @@ +name: Main Foodgram workflow + +on: push + +jobs: + tests: + runs-on: ubuntu-latest + services: + postgres: + image: postgres:13.10 + env: + POSTGRES_USER: foodgram_user + POSTGRES_PASSWORD: foodgram_password + POSTGRES_DB: foodgram_db + ports: + - 5432:5432 + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + steps: + - name: Check out code + uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: 3.9 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8==6.0.0 + pip install -r ./backend/requirements.txt + - name: Test with flake8 and django tests + env: + POSTGRES_USER: foodgram_user + POSTGRES_PASSWORD: foodgram_password + POSTGRES_DB: foodgram_db + DB_HOST: 127.0.0.1 + DB_PORT: 5432 + run: | + python -m flake8 backend/ + cd backend/ + python manage.py test + + + build_backend_and_push_to_docker_hub: + name: Push Docker image to DockerHub + runs-on: ubuntu-latest + needs: tests + steps: + - name: Check out the repo + uses: actions/checkout@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to Docker + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Push to DockerHub + uses: docker/build-push-action@v4 + with: + context: ./backend/ + push: true + tags: ${{ secrets.DOCKER_USERNAME }}/foodgram_backend:latest + + + frontend_tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up nodeJS + uses: actions/setup-node@v3 + with: + node-version: 18 + + + - name: Install dependencies + run: | + cd frontend/ + npm ci + + + # - name: Test frontend + # run: | + # cd frontend/ + # npm run test + + + build_frontend_and_push_to_docker_hub: + name: Push frontend Docker image to DockerHub + runs-on: ubuntu-latest + needs: frontend_tests + steps: + - name: Check out the repo + uses: actions/checkout@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to Docker + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Push to DockerHub + uses: docker/build-push-action@v4 + with: + context: ./frontend/ + push: true + tags: ${{ secrets.DOCKER_USERNAME }}/foodgram_frontend:latest + + + # build_infra_and_push_to_docker_hub: + # name: Push infra Docker image to DockerHub + # runs-on: ubuntu-latest + # steps: + # - name: Check out the repo + # uses: actions/checkout@v3 + # - name: Set up Docker Buildx + # uses: docker/setup-buildx-action@v2 + # - name: Login to Docker + # uses: docker/login-action@v2 + # with: + # username: ${{ secrets.DOCKER_USERNAME }} + # password: ${{ secrets.DOCKER_PASSWORD }} + # - name: Push to DockerHub + # uses: docker/build-push-action@v4 + # with: + # context: ./nginx/ + # push: true + # tags: ${{ secrets.DOCKER_USERNAME }}/foodgram_infra:latest + + + deploy: + runs-on: ubuntu-latest + needs: + - build_backend_and_push_to_docker_hub + - build_frontend_and_push_to_docker_hub + - build_infra_and_push_to_docker_hub + if: github.ref == 'refs/heads/main' + steps: + - name: Checkout repo + uses: actions/checkout@v3 + - name: Copy docker-compose.yml via ssh + uses: appleboy/scp-action@master + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USER }} + key: ${{ secrets.SSH_KEY }} + passphrase: ${{ secrets.SSH_PASSPHRASE }} + source: "docker-compose.production.yml" + target: "foodgram" + - name: Executing remote ssh commands to deploy + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USER }} + key: ${{ secrets.SSH_KEY }} + passphrase: ${{ secrets.SSH_PASSPHRASE }} + script: | + cd kittygram + sudo docker compose -f docker-compose.production.yml pull + sudo docker compose -f docker-compose.production.yml down + sudo docker compose -f docker-compose.production.yml up -d + sudo docker compose -f docker-compose.production.yml exec backend python manage.py migrate + sudo docker compose -f docker-compose.production.yml exec backend python manage.py collectstatic + sudo docker compose -f docker-compose.production.yml exec backend cp -r /app/collected_static/. /backend_static/static/ + + + send_message: + runs-on: ubuntu-latest + needs: deploy + steps: + - name: Send message + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_TO }} + token: ${{ secrets.TELEGRAM_TOKEN }} + message: Деплой успешно выполнен! https://github.com/${{ github.repository }}/commit/${{github.sha}} \ No newline at end of file diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..e0c8d9d --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1,6 @@ +venv +.git +db.sqlite3 +.idea +.vscode +.env \ No newline at end of file diff --git a/backend/api/filters.py b/backend/api/filters.py new file mode 100644 index 0000000..78e1bca --- /dev/null +++ b/backend/api/filters.py @@ -0,0 +1,57 @@ +from django_filters.rest_framework import filters, FilterSet +from recipes.models import Recipe, Ingredient +from users.models import User + + +class IngredientFilter(FilterSet): + """Фильтрация ингридиентов""" + + name = filters.CharFilter( + field_name='name', + lookup_expr='istartswith',) + + class Meta: + model = Ingredient + fields = ('name',) + + +IN_NOT_IN_LIST = ( + (0, 'Not_In_List'), + (1, 'In_List'), +) + + +class RecipeFilter(FilterSet): + """Фильтрация рецептов.""" + + author = filters.ModelChoiceFilter( + queryset=User.objects.all() + ) + is_in_shopping_cart = filters.ChoiceFilter( + choices=IN_NOT_IN_LIST, method='get_is_in' + ) + is_favorited = filters.ChoiceFilter( + choices=IN_NOT_IN_LIST, + method='get_is_in' + ) + tags = filters.AllValuesMultipleFilter( + field_name='tags__slug', + label='Ссылка' + ) + + def get_is_in(self, queryset, name, value): + """ + Фильтрация рецептов по избранному и списку покупок. + """ + user = self.request.user + if user.is_authenticated: + if value == '1': + if name == 'is_favorited': + queryset = queryset.filter(favorites_recipes__user=user) + if name == 'is_in_shopping_cart': + queryset = queryset.filter(shopping_cart__user=user) + return queryset + + class Meta: + model = Recipe + fields = ['is_favorited', 'is_in_shopping_cart', 'author', 'tags'] diff --git a/backend/api/paginations.py b/backend/api/paginations.py new file mode 100644 index 0000000..6beb5cd --- /dev/null +++ b/backend/api/paginations.py @@ -0,0 +1,7 @@ +from rest_framework.pagination import PageNumberPagination + + +class RecipePagination(PageNumberPagination): + """Паджинация рецептов.""" + page_size = 6 + page_size_query_param = 'limit' diff --git a/backend/api/serializers.py b/backend/api/serializers.py index e92ff5d..1774520 100644 --- a/backend/api/serializers.py +++ b/backend/api/serializers.py @@ -2,12 +2,12 @@ import webcolors from django.core.files.base import ContentFile -from djoser.serializers import (PasswordSerializer, UserCreateSerializer, +from djoser.serializers import (UserCreateSerializer, UserSerializer) -from rest_framework import serializers, exceptions, status +from rest_framework import serializers, exceptions from rest_framework.relations import SlugRelatedField from rest_framework.fields import IntegerField -from rest_framework.exceptions import ValidationError +# from rest_framework.exceptions import ValidationError from recipes.models import (Ingredient, Tag, @@ -92,7 +92,7 @@ class Meta: class IngredientInRecipeWriteSerializer(serializers.ModelSerializer): - id = IntegerField(write_only=True) + id = serializers.PrimaryKeyRelatedField(queryset=Ingredient.objects.all()) class Meta: model = IngredientAmount @@ -100,33 +100,104 @@ class Meta: class RecipeCreateSerializer(serializers.ModelSerializer): - image = Base64ImageField(required=False, allow_null=True) - author = SlugRelatedField(slug_field='username', read_only=True) - ingredients = IngredientInRecipeWriteSerializer(many=True) # проблема с выводом игредиентов + """Серилизатор для создания рецепта.""" + image = Base64ImageField( + required=False, + allow_null=True + ) + author = SlugRelatedField( + slug_field='username', + read_only=True + ) + ingredients = IngredientInRecipeWriteSerializer( + many=True + ) tags = serializers.PrimaryKeyRelatedField( queryset=Tag.objects.all(), many=True ) - cooking_time = serializers.IntegerField() - - def validate_ingredients(self, value): - if not value: - raise exceptions.ValidationError( - 'Добавьте ингредиент.' - ) - - ingredients = [item['id'] for item in value] # посмотреть и переписать - for ingredient in ingredients: - if ingredients.count(ingredient) > 1: - raise exceptions.ValidationError( - 'Такой ингредиент уже добавлен.' - ) - - return value + cooking_time = serializers.IntegerField(read_only=True) class Meta: model = Recipe - exclude = ('pub_date',) + fields = ('id', 'ingredients', 'tags', + 'image', 'name', 'text', + 'cooking_time', 'author') + + def create_ingredients_amount(self, ingredients, recipe): + IngredientAmount.objects.bulk_create([ + IngredientAmount( + ingredient=ingredient.get('id'), + recipe=recipe, + amount=ingredient.get('amount') + ) + for ingredient in ingredients + ]) + + def create(self, validated_data): + tags = validated_data.pop('tags') + ingredients = validated_data.pop('ingredients') + recipe = Recipe.objects.create(**validated_data) + recipe.tags.set(tags) + self.create_ingredients_amount(ingredients, recipe) + return recipe + + def update(self, instance, validated_data): + recipe = instance + instance.image = validated_data.get('image', instance.image) + instance.name = validated_data.get('name', instance.name) + instance.text = validated_data.get('text', instance.name) + instance.cooking_time = validated_data.get( + 'cooking_time', + instance.cooking_time + ) + instance.tags.clear() + instance.ingredients.clear() + tags = validated_data.get('tags') + instance.tags.set(tags) + ingredients = validated_data.get('ingredients') + IngredientAmount.objects.filter(recipe=recipe).delete() + self.create_ingredients_amount(ingredients, recipe) + instance.save() + return instance + + def to_representation(self, instance): + return RecipeReadSerializer(instance, context={ + 'request': self.context.get('request') + }).data + + +# class RecipeCreateSerializer(serializers.ModelSerializer): +# image = Base64ImageField(required=False, allow_null=True) +# author = SlugRelatedField(slug_field='username', read_only=True) +# ingredients = IngredientInRecipeWriteSerializer(many=True) # ! +# tags = serializers.PrimaryKeyRelatedField( +# queryset=Tag.objects.all(), +# many=True +# ) +# cooking_time = serializers.IntegerField() + +# def validate_ingredients(self, value): +# if not value: +# raise exceptions.ValidationError( +# 'Добавьте ингредиент.' +# ) + +# ingredients = [item['id'] for item in value] # посмотреть и переписать +# for ingredient in ingredients: +# if ingredients.count(ingredient) > 1: +# raise exceptions.ValidationError( +# 'Такой ингредиент уже добавлен.' +# ) + +# return value + +# def create(self, validated_data): +# ... + +# class Meta: +# model = Recipe +# exclude = ('pub_date',) class ShoppingCartSerializer(serializers.ModelSerializer): @@ -136,14 +207,6 @@ class Meta: model = ShoppingCart -class SubscriptionsSerializer(serializers.ModelSerializer): - - class Meta: - - ... - - - class Hex2NameColor(serializers.Field): def to_representation(self, value): return value @@ -167,7 +230,7 @@ class RecipeReadSerializer(serializers.ModelSerializer): ) author = UserReadSerializer() is_favorited = serializers.SerializerMethodField() - is_in_shopping_cart = serializers.SerializerMethodField + is_in_shopping_cart = serializers.SerializerMethodField() class Meta: model = Recipe @@ -175,8 +238,9 @@ class Meta: 'id', 'tags', 'author', 'ingredients', 'is_favorited', 'name', 'image', 'text', 'cooking_time', + 'is_in_shopping_cart', ) - + def get_is_favorited(self, obj): request = self.context.get('request') if request.user.is_anonymous: @@ -199,6 +263,7 @@ class SubscribeSerializer(serializers.ModelSerializer): recipes_count = serializers.SerializerMethodField() is_subscribed = serializers.SerializerMethodField() + recipes = serializers.SerializerMethodField() class Meta: model = User @@ -209,7 +274,7 @@ class Meta: 'first_name', 'last_name', 'is_subscribed', - # 'recipes', + 'recipes', 'recipes_count', ) @@ -222,22 +287,25 @@ def get_is_subscribed(self, obj): return False return Subscribe.objects.filter(user=user, author=obj).exists() + def get_recipes(self, obj): + request = self.context.get('request') + limit_recipes = request.query_params.get('recipes_limit') + if limit_recipes is not None: + recipes = obj.recipes.all()[:(int(limit_recipes))] + else: + recipes = obj.recipes.all() + return RecipeShortSerializer(recipes, many=True, + context={'request': request}).data +class RecipeShortSerializer(serializers.ModelSerializer): + image = Base64ImageField() - - - - - - # def get_recipes(self, obj): - # request = self.context.get('request') - # limit_recipes = request.query_params.get('recipes_limit') - # if limit_recipes is not None: - # recipes = obj.recipes.all()[:(int(limit_recipes))] - # else: - # recipes = obj.recipes.all() - # context = {'request': request} - # return FollowRecipeSerializer(recipes, many=True, - # context=context).data - + class Meta: + model = Recipe + fields = ( + 'id', + 'name', + 'image', + 'cooking_time' + ) diff --git a/backend/api/urls.py b/backend/api/urls.py index c8a79a7..f4c11ba 100644 --- a/backend/api/urls.py +++ b/backend/api/urls.py @@ -13,7 +13,6 @@ router.register('users', CustomUserViewSet, basename='users') router.register('ingredients', IngredientViewSet) router.register('tags', TagViewSet) -# router.register('subscriptions', FollowViewSet, basename='subscription') router.register('recipes', RecipeViewSet, basename='recipe') diff --git a/backend/api/views.py b/backend/api/views.py index 2525817..54e5a9f 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -1,42 +1,53 @@ -from rest_framework import viewsets, status, exceptions +from rest_framework import viewsets, status from django.shortcuts import get_object_or_404 from rest_framework.viewsets import ReadOnlyModelViewSet from rest_framework.permissions import (IsAuthenticatedOrReadOnly, IsAuthenticated, AllowAny, SAFE_METHODS) -from rest_framework import filters -from rest_framework import mixins from rest_framework.filters import SearchFilter from rest_framework.response import Response from djoser.views import UserViewSet from rest_framework.decorators import action +from django_filters.rest_framework import DjangoFilterBackend +import io +from django.http import FileResponse +from reportlab.pdfgen import canvas +from reportlab.pdfbase import pdfmetrics, ttfonts +from django.db.models import Sum from api.serializers import (UserCreateSerializer, UserReadSerializer, IngredientSerializer, TagSerializer, RecipeCreateSerializer, - ShoppingCartSerializer, RecipeReadSerializer, SubscribeSerializer, - SubscriptionsSerializer, + RecipeShortSerializer ) from recipes.models import (Ingredient, Tag, Recipe, Favorite, ShoppingCart, - Subscribe) + Subscribe, + IngredientAmount) from users.models import User -from api.permissions import (IsOwnerOrReadOnly, - IsAmdinOrReadOnly) +from api.permissions import ( + # IsOwnerOrReadOnly, + IsAmdinOrReadOnly) +from api.paginations import RecipePagination +from api.filters import ( + RecipeFilter, + IngredientFilter +) class CustomUserViewSet(UserViewSet): """Вьюсет для просмотра профиля и создания пользователя.""" queryset = User.objects.all() permission_classes = [IsAuthenticatedOrReadOnly, ] + pagination_class = RecipePagination def get_serializer_class(self): if self.action == 'create': @@ -58,14 +69,15 @@ def subscribe(self, request, id=None): status=status.HTTP_400_BAD_REQUEST) if Subscribe.objects.filter(user=user, author=author).exists(): - return Response({'errors': 'Вы уже подписаны на этого пользователя!'}, + return Response({'errors': + 'Вы уже подписаны на этого пользователя!'}, status=status.HTTP_400_BAD_REQUEST) Subscribe.objects.create(user=user, author=author) serializer = SubscribeSerializer(author, context={'request': request} ) - + return Response(serializer.data, status=status.HTTP_201_CREATED) @@ -80,27 +92,27 @@ def subscribe(self, request, id=None): {'errors': 'Вы не подписаны на этого пользователя!'}, status=status.HTTP_400_BAD_REQUEST) - # @action( - # detail=True, - # permission_classes=[IsAuthenticated, ] - # ) - # def subscriptions(self, request): - # user = request.user - # queryset = User.objects.filter(subscribing__user=user) - # pages = self.paginate_queryset(queryset) - # serializer = SubscriptionsSerializer(pages, - # many=True, - # context={'request': request}) - # return self.get_paginated_response(serializer.data) + @action( + detail=False, + permission_classes=[IsAuthenticated, ], + ) + def subscriptions(self, request): + queryset = User.objects.filter(subscribing__user=request.user) + pag_queryset = self.paginate_queryset(queryset) + serializer = SubscribeSerializer(pag_queryset, + many=True, + context={'request': request}) + return self.get_paginated_response(serializer.data) class IngredientViewSet(ReadOnlyModelViewSet): """Вьюсет для просмотра ингредиентов.""" queryset = Ingredient.objects.all() + permission_classes = [IsAmdinOrReadOnly] serializer_class = IngredientSerializer filter_backends = (SearchFilter,) - search_fields = ('name',) - permission_classes = [IsAmdinOrReadOnly] + filterset_class = IngredientFilter + search_fields = ('^name',) class TagViewSet(ReadOnlyModelViewSet): @@ -115,6 +127,9 @@ class RecipeViewSet(viewsets.ModelViewSet): Просмотр, создание, редактирование.""" queryset = Recipe.objects.all() permission_classes = [AllowAny] + pagination_class = RecipePagination + filter_backends = (DjangoFilterBackend,) + filterset_class = RecipeFilter def perform_create(self, serializer): serializer.save(author=self.request.user) @@ -150,3 +165,65 @@ def favorite(self, request, pk): return Response( {'errors': 'Рецепт уже удален!'}, status=status.HTTP_400_BAD_REQUEST) + + @action( + detail=True, + methods=['post', 'delete'], + permission_classes=[IsAuthenticated], + pagination_class=None + ) + def shopping_cart(self, request, pk): + if request.method == 'POST': + if ShoppingCart.objects.filter(user=request.user, + recipe__id=pk).exists(): + return Response({'errors': + 'Рецепт уже добавлен в список покупок!'}, + status=status.HTTP_400_BAD_REQUEST) + recipe = get_object_or_404(Recipe, id=pk) + ShoppingCart.objects.create(user=request.user, recipe=recipe) + serializer = RecipeShortSerializer(recipe, + context={'request': request}) + return Response(serializer.data, status=status.HTTP_201_CREATED) + if request.method == 'DELETE': + rec_in_cart = ShoppingCart.objects.filter(user=request.user, + recipe__id=pk) + if rec_in_cart.exists(): + rec_in_cart.delete() + return Response( + {'message': 'Рецепт удален из списка покупок'}, + status=status.HTTP_204_NO_CONTENT) + return Response( + {'errors': 'Рецепт уже удален из списка покупок!'}, + status=status.HTTP_400_BAD_REQUEST) + + @action( + detail=False, + methods=['get'], + permission_classes=(IsAuthenticated,)) + def download_shopping_cart(self, request): + user = request.user + buffer = io.BytesIO() + ingredients = IngredientAmount.objects.filter( + recipe__shopping_cart__user=user).values( + 'ingredient__name', 'ingredient__measurement_unit').annotate( + amount=Sum('amount')) + shopping_list = ([f'{i["ingredient__name"]}' + f' ({i["ingredient__measurement_unit"]})' + f' - {i["amount"]}' + for i in ingredients]) + text = canvas.Canvas(buffer) + font = ttfonts.TTFont('Times-Roman', './docs/font.ttf') + pdfmetrics.registerFont(font) + text.setFont('Times-Roman', 20) + text.drawString(200, 750, 'Список покупок') + text.setFont('Times-Roman', 14) + height = 700 + for line in shopping_list: + text.drawString(50, height, line) + height -= 25 + text.showPage() + text.save() + buffer.seek(0) + return FileResponse(buffer, + as_attachment=True, + filename='shopping_cart.pdf') diff --git a/backend/docs/font.ttf b/backend/docs/font.ttf new file mode 100644 index 0000000000000000000000000000000000000000..51261a005cd5b17755274fd7d2bdde4edd01bf1c GIT binary patch literal 347988 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

(uq? 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

YEG^BERBfy(cy-p) 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 >y1F`V(Hw>R-(RQ~8igUkaOBY$ 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

BC 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 Date: Tue, 19 Sep 2023 12:18:24 +0300 Subject: [PATCH 07/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2f4b7dd..2e61d3c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -132,7 +132,7 @@ jobs: needs: - build_backend_and_push_to_docker_hub - build_frontend_and_push_to_docker_hub - - build_infra_and_push_to_docker_hub + # - build_infra_and_push_to_docker_hub if: github.ref == 'refs/heads/main' steps: - name: Checkout repo From a9c56c32b401bd40b5af54d2f0f21584a25cdeb3 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 12:21:24 +0300 Subject: [PATCH 08/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2e61d3c..16c39bc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,20 +62,20 @@ jobs: tags: ${{ secrets.DOCKER_USERNAME }}/foodgram_backend:latest - frontend_tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Set up nodeJS - uses: actions/setup-node@v3 - with: - node-version: 18 + # frontend_tests: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # - name: Set up nodeJS + # uses: actions/setup-node@v3 + # with: + # node-version: 18 - - name: Install dependencies - run: | - cd frontend/ - npm ci + # - name: Install dependencies + # run: | + # cd frontend/ + # npm ci # - name: Test frontend @@ -87,7 +87,7 @@ jobs: build_frontend_and_push_to_docker_hub: name: Push frontend Docker image to DockerHub runs-on: ubuntu-latest - needs: frontend_tests + # needs: frontend_tests steps: - name: Check out the repo uses: actions/checkout@v3 From 54960a7056e02e2623ead9936735885a9fa88003 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 14:03:49 +0300 Subject: [PATCH 09/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/admin.py | 3 --- backend/api/permissions.py | 4 ++-- backend/api/serializers.py | 7 +++--- backend/api/views.py | 6 +----- backend/foodgram/settings.py | 20 ++++++++--------- backend/manage.py | 42 ++++++++++++++++++------------------ backend/users/admin.py | 3 --- backend/users/views.py | 3 --- 8 files changed, 38 insertions(+), 50 deletions(-) delete mode 100644 backend/api/admin.py delete mode 100644 backend/users/admin.py delete mode 100644 backend/users/views.py diff --git a/backend/api/admin.py b/backend/api/admin.py deleted file mode 100644 index 8c38f3f..0000000 --- a/backend/api/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/backend/api/permissions.py b/backend/api/permissions.py index 633f47d..3f93115 100644 --- a/backend/api/permissions.py +++ b/backend/api/permissions.py @@ -5,6 +5,7 @@ class IsOwnerOrReadOnly(BasePermission): def has_object_permission(self, request, view, obj): return request.method in SAFE_METHODS or obj.author == request.user + class IsAmdinOrReadOnly(BasePermission): def has_permission(self, request, view): @@ -13,8 +14,7 @@ def has_permission(self, request, view): request.user.is_authenticated and (request.user.is_admin or request.user.is_superuser))) - # class IsAdminOrReadOnly(BasePermission): # def has_permission(self, request, view): # return (request.method in SAFE_METHODS -# or request.user and request.user.is_staff) \ No newline at end of file +# or request.user and request.user.is_staff) diff --git a/backend/api/serializers.py b/backend/api/serializers.py index 1774520..29e02ac 100644 --- a/backend/api/serializers.py +++ b/backend/api/serializers.py @@ -4,9 +4,9 @@ from django.core.files.base import ContentFile from djoser.serializers import (UserCreateSerializer, UserSerializer) -from rest_framework import serializers, exceptions +from rest_framework import serializers from rest_framework.relations import SlugRelatedField -from rest_framework.fields import IntegerField +# from rest_framework.fields import IntegerField # from rest_framework.exceptions import ValidationError from recipes.models import (Ingredient, @@ -183,7 +183,8 @@ def to_representation(self, instance): # 'Добавьте ингредиент.' # ) -# ingredients = [item['id'] for item in value] # посмотреть и переписать +# ingredients = [item['id'] for item in value] +# # посмотреть и переписать # for ingredient in ingredients: # if ingredients.count(ingredient) > 1: # raise exceptions.ValidationError( diff --git a/backend/api/views.py b/backend/api/views.py index 54e5a9f..e49573a 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -34,13 +34,9 @@ IngredientAmount) from users.models import User from api.permissions import ( - # IsOwnerOrReadOnly, IsAmdinOrReadOnly) from api.paginations import RecipePagination -from api.filters import ( - RecipeFilter, - IngredientFilter -) +from api.filters import RecipeFilter, IngredientFilter class CustomUserViewSet(UserViewSet): diff --git a/backend/foodgram/settings.py b/backend/foodgram/settings.py index 2e5ef22..5bcb683 100644 --- a/backend/foodgram/settings.py +++ b/backend/foodgram/settings.py @@ -84,15 +84,15 @@ # https://docs.djangoproject.com/en/4.2/ref/settings/#databases -# if DEBUG: -# DATABASES = { -# 'default': { -# 'ENGINE': 'django.db.backends.sqlite3', -# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), -# } -# } -# else: -DATABASES = { +if DEBUG: + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } + } +else: + DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': os.getenv('POSTGRES_DB', 'django'), @@ -179,4 +179,4 @@ # 'user_list': ['rest_framework.permissions.IsAuthenticatedOrReadOnly'], # }, 'HIDE_USERS': False, -} \ No newline at end of file +} diff --git a/backend/manage.py b/backend/manage.py index efc1f7f..2c5b9dc 100644 --- a/backend/manage.py +++ b/backend/manage.py @@ -1,21 +1,21 @@ -"""Django's command-line utility for administrative tasks.""" -import os -import sys - - -def main(): - """Run administrative tasks.""" - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'foodgram.settings') - try: - from django.core.management import execute_from_command_line - except ImportError as exc: - raise ImportError( - "Couldn't import Django. Are you sure it's installed and " - "available on your PYTHONPATH environment variable? Did you " - "forget to activate a virtual environment?" - ) from exc - execute_from_command_line(sys.argv) - - -if __name__ == '__main__': - main() \ No newline at end of file +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'foodgram.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/backend/users/admin.py b/backend/users/admin.py deleted file mode 100644 index 8c38f3f..0000000 --- a/backend/users/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/backend/users/views.py b/backend/users/views.py deleted file mode 100644 index 91ea44a..0000000 --- a/backend/users/views.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.shortcuts import render - -# Create your views here. From c37c6ee7c17327ccc0961527fbb60536e3a90209 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 14:08:02 +0300 Subject: [PATCH 10/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/views.py | 2 +- backend/foodgram/urls.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/api/views.py b/backend/api/views.py index e49573a..3b8a7ca 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -34,7 +34,7 @@ IngredientAmount) from users.models import User from api.permissions import ( - IsAmdinOrReadOnly) + IsAmdinOrReadOnly) from api.paginations import RecipePagination from api.filters import RecipeFilter, IngredientFilter diff --git a/backend/foodgram/urls.py b/backend/foodgram/urls.py index 96545d7..5875fe6 100644 --- a/backend/foodgram/urls.py +++ b/backend/foodgram/urls.py @@ -12,4 +12,4 @@ if settings.DEBUG: urlpatterns += static( settings.MEDIA_URL, document_root=settings.MEDIA_ROOT - ) \ No newline at end of file + ) From 991f47add6fe1b9f3927215f989904608e00540d Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 14:10:55 +0300 Subject: [PATCH 11/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/views.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/api/views.py b/backend/api/views.py index 3b8a7ca..24d2c72 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -33,8 +33,7 @@ Subscribe, IngredientAmount) from users.models import User -from api.permissions import ( - IsAmdinOrReadOnly) +from api.permissions import IsAmdinOrReadOnly from api.paginations import RecipePagination from api.filters import RecipeFilter, IngredientFilter From 298d3d5cc39aeb33d704f0b45cf6c09308a94bbf Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 14:16:48 +0300 Subject: [PATCH 12/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 16c39bc..387bfd2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -105,35 +105,12 @@ jobs: push: true tags: ${{ secrets.DOCKER_USERNAME }}/foodgram_frontend:latest - - # build_infra_and_push_to_docker_hub: - # name: Push infra Docker image to DockerHub - # runs-on: ubuntu-latest - # steps: - # - name: Check out the repo - # uses: actions/checkout@v3 - # - name: Set up Docker Buildx - # uses: docker/setup-buildx-action@v2 - # - name: Login to Docker - # uses: docker/login-action@v2 - # with: - # username: ${{ secrets.DOCKER_USERNAME }} - # password: ${{ secrets.DOCKER_PASSWORD }} - # - name: Push to DockerHub - # uses: docker/build-push-action@v4 - # with: - # context: ./nginx/ - # push: true - # tags: ${{ secrets.DOCKER_USERNAME }}/foodgram_infra:latest - - deploy: runs-on: ubuntu-latest needs: - build_backend_and_push_to_docker_hub - build_frontend_and_push_to_docker_hub - # - build_infra_and_push_to_docker_hub - if: github.ref == 'refs/heads/main' + steps: - name: Checkout repo uses: actions/checkout@v3 From 9305088e3e98884b49fa415dc754b31123e0338f Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 14:33:20 +0300 Subject: [PATCH 13/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 387bfd2..b0c53ee 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -131,7 +131,7 @@ jobs: key: ${{ secrets.SSH_KEY }} passphrase: ${{ secrets.SSH_PASSPHRASE }} script: | - cd kittygram + cd foodgram sudo docker compose -f docker-compose.production.yml pull sudo docker compose -f docker-compose.production.yml down sudo docker compose -f docker-compose.production.yml up -d From 0b7e6cefa8039d3a3088f6f027e843a0c800dbad Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 15:18:06 +0300 Subject: [PATCH 14/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b0c53ee..6e83bfe 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -61,29 +61,6 @@ jobs: push: true tags: ${{ secrets.DOCKER_USERNAME }}/foodgram_backend:latest - - # frontend_tests: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v3 - # - name: Set up nodeJS - # uses: actions/setup-node@v3 - # with: - # node-version: 18 - - - # - name: Install dependencies - # run: | - # cd frontend/ - # npm ci - - - # - name: Test frontend - # run: | - # cd frontend/ - # npm run test - - build_frontend_and_push_to_docker_hub: name: Push frontend Docker image to DockerHub runs-on: ubuntu-latest From 76325b48eb0807cf0b7a7f7cc59a825bf0289e9a Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 15:44:52 +0300 Subject: [PATCH 15/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6e83bfe..795379d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -41,7 +41,7 @@ jobs: build_backend_and_push_to_docker_hub: - name: Push Docker image to DockerHub + name: Push Backend Docker image to DockerHub runs-on: ubuntu-latest needs: tests steps: From e711b5fd1c00ea04dc3d304ea9ee1bbf80ade0b7 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 15:55:52 +0300 Subject: [PATCH 16/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.production.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.production.yml b/docker-compose.production.yml index e903bc2..081f0c5 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -31,7 +31,7 @@ services: nginx: image: nginx:1.19.3 ports: - - "8000:80" + - "80:80" volumes: - ./infra/nginx.conf:/etc/nginx/conf.d/default.conf - ./frontend/build:/usr/share/nginx/html/ From 63dae4c26d9a4f856cbc9cf6c61867a9bebf4c88 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 16:02:36 +0300 Subject: [PATCH 17/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.production.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 081f0c5..e903bc2 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -31,7 +31,7 @@ services: nginx: image: nginx:1.19.3 ports: - - "80:80" + - "8000:80" volumes: - ./infra/nginx.conf:/etc/nginx/conf.d/default.conf - ./frontend/build:/usr/share/nginx/html/ From eb016e472b27178887dabfd3c4229b30d8e2391d Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 16:07:13 +0300 Subject: [PATCH 18/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.production.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.production.yml b/docker-compose.production.yml index e903bc2..e5736fc 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -13,7 +13,7 @@ services: - fg_data:/var/lib/postgresql/fg_data backend: image: zebrahr/foodgram_backend - # restart: always + restart: always env_file: .env depends_on: - db From 3c47380137e677900cd94864f3d807f9695420b0 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 16:11:18 +0300 Subject: [PATCH 19/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/foodgram/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/foodgram/urls.py b/backend/foodgram/urls.py index 5875fe6..2e1677b 100644 --- a/backend/foodgram/urls.py +++ b/backend/foodgram/urls.py @@ -8,7 +8,6 @@ path('api/', include('api.urls')), ] - if settings.DEBUG: urlpatterns += static( settings.MEDIA_URL, document_root=settings.MEDIA_ROOT From 76c5532716eb1771235d89af0456798f156be312 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 16:54:50 +0300 Subject: [PATCH 20/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.production.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.production.yml b/docker-compose.production.yml index e5736fc..3946934 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -5,6 +5,7 @@ volumes: static_fg: media_fg: + services: db: image: postgres:13 From dadb4ae9c2d8846e30d3fd28175df0cd7ec04da7 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Tue, 19 Sep 2023 17:16:33 +0300 Subject: [PATCH 21/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D0=91?= =?UTF-8?q?=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 795379d..62b88fe 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -64,7 +64,6 @@ jobs: build_frontend_and_push_to_docker_hub: name: Push frontend Docker image to DockerHub runs-on: ubuntu-latest - # needs: frontend_tests steps: - name: Check out the repo uses: actions/checkout@v3 From 64e1c1d673153e29762afd6c36862ec8a48718e9 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Thu, 21 Sep 2023 12:14:03 +0300 Subject: [PATCH 22/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D0=91?= =?UTF-8?q?=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.production.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 3946934..e5736fc 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -5,7 +5,6 @@ volumes: static_fg: media_fg: - services: db: image: postgres:13 From 17384bd97dedb3875e15f81dfd2aecf7803fb3a9 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Thu, 21 Sep 2023 13:22:44 +0300 Subject: [PATCH 23/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=82=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- infra/nginx.conf | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index 99bdb0c..48d0cb5 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -1,12 +1,13 @@ server { + listen 80; + index index.html; server_tokens off; - listen 80; client_max_body_size 20M; - - location /api/docs/ { - root /usr/share/nginx/html; - try_files $uri $uri/redoc.html; - } + + # location /api/docs/ { + # root /usr/share/nginx/html; + # try_files $uri $uri/redoc.html; + # } location /api/ { proxy_set_header Host $http_host; @@ -19,26 +20,32 @@ server { } location /media/ { - alias /app/media/; + proxy_set_header Host $http_host; + alias /media/; } - location /static/admin/ { - root /staticfiles/; - } + # location /static/admin/ { + # root /staticfiles/; + # } - location /static/rest-framework/ { - root /staticfiles/; - } + # location /static/rest-framework/ { + # root /staticfiles/; + # } location / { - root /usr/share/nginx/html; + alias /staticfiles/; index index.html index.htm; - try_files $uri /index.html; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } + } + + # location / { + # root /usr/share/nginx/html; + # index index.html index.htm; + # try_files $uri /index.html; + # proxy_set_header Host $host; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + # } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/html/frontend/; From 8a09201ebf599234011a46ad6c5dd6c46afd5e39 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Thu, 21 Sep 2023 13:39:29 +0300 Subject: [PATCH 24/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=82=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- infra/nginx.conf | 49 +++++++++++++++++++++--------------------------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index 48d0cb5..09371ab 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -1,13 +1,12 @@ server { - listen 80; - index index.html; server_tokens off; - client_max_body_size 20M; - - # location /api/docs/ { - # root /usr/share/nginx/html; - # try_files $uri $uri/redoc.html; - # } + listen 80; + client_max_body_size 30M; + + location /api/docs/ { + root /usr/share/nginx/html; + try_files $uri $uri/redoc.html; + } location /api/ { proxy_set_header Host $http_host; @@ -20,32 +19,26 @@ server { } location /media/ { - proxy_set_header Host $http_host; - alias /media/; + alias /app/media/; } - # location /static/admin/ { - # root /staticfiles/; - # } + location /static/admin/ { + root /staticfiles/; + } - # location /static/rest-framework/ { - # root /staticfiles/; - # } + location /static/rest-framework/ { + root /staticfiles/; + } location / { - alias /staticfiles/; + root /usr/share/nginx/html; index index.html index.htm; - } - - # location / { - # root /usr/share/nginx/html; - # index index.html index.htm; - # try_files $uri /index.html; - # proxy_set_header Host $host; - # proxy_set_header X-Real-IP $remote_addr; - # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - # proxy_set_header X-Forwarded-Proto $scheme; - # } + try_files $uri /index.html; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/html/frontend/; From 3a46bb07edb52c43ffd3bc491c2609efd0e091cd Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Thu, 21 Sep 2023 15:46:02 +0300 Subject: [PATCH 25/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D0=B1?= =?UTF-8?q?=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/filters.py | 2 +- docker-compose.production.yml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/api/filters.py b/backend/api/filters.py index 78e1bca..407f551 100644 --- a/backend/api/filters.py +++ b/backend/api/filters.py @@ -4,7 +4,7 @@ class IngredientFilter(FilterSet): - """Фильтрация ингридиентов""" + """Фильтрация ингредиентов по названию.""" name = filters.CharFilter( field_name='name', diff --git a/docker-compose.production.yml b/docker-compose.production.yml index e5736fc..775d7d0 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -10,7 +10,7 @@ services: image: postgres:13 env_file: .env volumes: - - fg_data:/var/lib/postgresql/fg_data + - fg_data:/var/lib/postgresql/data backend: image: zebrahr/foodgram_backend restart: always @@ -40,4 +40,5 @@ services: - media_fg:/app/media/ depends_on: - backend + - frontend \ No newline at end of file From 7cb1c1c42d475a9241ff8cc5e1e2a6a773dd532c Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Thu, 21 Sep 2023 16:01:34 +0300 Subject: [PATCH 26/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D0=B1?= =?UTF-8?q?=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.production.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 775d7d0..681b991 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -20,7 +20,6 @@ services: volumes: - static_fg:/backend_static - media_fg:/app/media - # - ./backend/foodgram:/app/foodgram frontend: image: zebrahr/foodgram_frontend volumes: From a8fdbe1682f8b6cd98b5eed018200e5fee3e4fdc Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Thu, 21 Sep 2023 16:56:40 +0300 Subject: [PATCH 27/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=84?= =?UTF-8?q?=D0=B8=D0=BB=D0=BB=D1=8C=D1=82=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/filters.py | 6 +---- backend/api/serializers.py | 47 +++----------------------------------- backend/api/views.py | 4 ++-- 3 files changed, 6 insertions(+), 51 deletions(-) diff --git a/backend/api/filters.py b/backend/api/filters.py index 407f551..a6ba613 100644 --- a/backend/api/filters.py +++ b/backend/api/filters.py @@ -4,11 +4,7 @@ class IngredientFilter(FilterSet): - """Фильтрация ингредиентов по названию.""" - - name = filters.CharFilter( - field_name='name', - lookup_expr='istartswith',) + name = filters.CharFilter(lookup_expr='istartswith') class Meta: model = Ingredient diff --git a/backend/api/serializers.py b/backend/api/serializers.py index 29e02ac..b27b7bf 100644 --- a/backend/api/serializers.py +++ b/backend/api/serializers.py @@ -124,7 +124,7 @@ class Meta: 'image', 'name', 'text', 'cooking_time', 'author') - def create_ingredients_amount(self, ingredients, recipe): + def create_ingredients(self, ingredients, recipe): IngredientAmount.objects.bulk_create([ IngredientAmount( ingredient=ingredient.get('id'), @@ -139,7 +139,7 @@ def create(self, validated_data): ingredients = validated_data.pop('ingredients') recipe = Recipe.objects.create(**validated_data) recipe.tags.set(tags) - self.create_ingredients_amount(ingredients, recipe) + self.create_ingredients(ingredients, recipe) return recipe def update(self, instance, validated_data): @@ -157,7 +157,7 @@ def update(self, instance, validated_data): instance.tags.set(tags) ingredients = validated_data.get('ingredients') IngredientAmount.objects.filter(recipe=recipe).delete() - self.create_ingredients_amount(ingredients, recipe) + self.create_ingredients(ingredients, recipe) instance.save() return instance @@ -167,47 +167,6 @@ def to_representation(self, instance): }).data -# class RecipeCreateSerializer(serializers.ModelSerializer): -# image = Base64ImageField(required=False, allow_null=True) -# author = SlugRelatedField(slug_field='username', read_only=True) -# ingredients = IngredientInRecipeWriteSerializer(many=True) # ! -# tags = serializers.PrimaryKeyRelatedField( -# queryset=Tag.objects.all(), -# many=True -# ) -# cooking_time = serializers.IntegerField() - -# def validate_ingredients(self, value): -# if not value: -# raise exceptions.ValidationError( -# 'Добавьте ингредиент.' -# ) - -# ingredients = [item['id'] for item in value] -# # посмотреть и переписать -# for ingredient in ingredients: -# if ingredients.count(ingredient) > 1: -# raise exceptions.ValidationError( -# 'Такой ингредиент уже добавлен.' -# ) - -# return value - -# def create(self, validated_data): -# ... - -# class Meta: -# model = Recipe -# exclude = ('pub_date',) - - -class ShoppingCartSerializer(serializers.ModelSerializer): - - class Meta: - fields = '__all__' - model = ShoppingCart - - class Hex2NameColor(serializers.Field): def to_representation(self, value): return value diff --git a/backend/api/views.py b/backend/api/views.py index 24d2c72..e7ff734 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -105,9 +105,9 @@ class IngredientViewSet(ReadOnlyModelViewSet): queryset = Ingredient.objects.all() permission_classes = [IsAmdinOrReadOnly] serializer_class = IngredientSerializer - filter_backends = (SearchFilter,) + # filter_backends = (SearchFilter,) filterset_class = IngredientFilter - search_fields = ('^name',) + # search_fields = ('^name',) class TagViewSet(ReadOnlyModelViewSet): From 744dec4c7d2a63696f354c4da26f3aa25b122f8e Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Thu, 21 Sep 2023 17:12:56 +0300 Subject: [PATCH 28/48] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=84?= =?UTF-8?q?=D0=B8=D0=BB=D0=BB=D1=8C=D1=82=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/api/views.py b/backend/api/views.py index e7ff734..8f83813 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -5,7 +5,7 @@ IsAuthenticated, AllowAny, SAFE_METHODS) -from rest_framework.filters import SearchFilter +# from rest_framework.filters import SearchFilter from rest_framework.response import Response from djoser.views import UserViewSet from rest_framework.decorators import action From 0bd206480c3419e5f9baae9b4dcb3ce18175643a Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Fri, 22 Sep 2023 15:15:01 +0300 Subject: [PATCH 29/48] test --- backend/api/views.py | 6 +++--- backend/foodgram/settings.py | 1 + docker-compose.yml | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/api/views.py b/backend/api/views.py index 8f83813..24d2c72 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -5,7 +5,7 @@ IsAuthenticated, AllowAny, SAFE_METHODS) -# from rest_framework.filters import SearchFilter +from rest_framework.filters import SearchFilter from rest_framework.response import Response from djoser.views import UserViewSet from rest_framework.decorators import action @@ -105,9 +105,9 @@ class IngredientViewSet(ReadOnlyModelViewSet): queryset = Ingredient.objects.all() permission_classes = [IsAmdinOrReadOnly] serializer_class = IngredientSerializer - # filter_backends = (SearchFilter,) + filter_backends = (SearchFilter,) filterset_class = IngredientFilter - # search_fields = ('^name',) + search_fields = ('^name',) class TagViewSet(ReadOnlyModelViewSet): diff --git a/backend/foodgram/settings.py b/backend/foodgram/settings.py index 5bcb683..9832dcc 100644 --- a/backend/foodgram/settings.py +++ b/backend/foodgram/settings.py @@ -163,6 +163,7 @@ 'rest_framework.authentication.TokenAuthentication', ), + 'SEARCH_PARAM': 'name', # 'DEFAULT_PAGINATION_CLASS': 'api.paginations.RecipePagination', # 'PAGE_SIZE': 6, } diff --git a/docker-compose.yml b/docker-compose.yml index 9bec344..c84975a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: volumes: - static_fg:/backend_static - media_fg:/app/media - - ./backend/foodgram:/app/foodgram + # - ./backend/foodgram:/app/foodgram frontend: build: context: ./frontend From 633c89540f3ae0f5c43de51a5bbf71f6acd18679 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Fri, 22 Sep 2023 15:24:01 +0300 Subject: [PATCH 30/48] test --- infra/nginx.conf | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index 09371ab..6f8127e 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -30,18 +30,10 @@ server { root /staticfiles/; } - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri /index.html; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - error_page 500 502 503 504 /50x.html; - location = /50x.html { + + error_page 500 502 503 504 /50x.html; + location = /50x.html { root /var/html/frontend/; - } + } } \ No newline at end of file From d9df7d284610539ce3ca808f2b97ee09182e574f Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Fri, 22 Sep 2023 15:28:04 +0300 Subject: [PATCH 31/48] test --- infra/nginx.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index 6f8127e..0a0f91f 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -30,7 +30,6 @@ server { root /staticfiles/; } - error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/html/frontend/; From ad1a84921926d435be8ff72c12e24ffce0b1a221 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Fri, 22 Sep 2023 15:35:40 +0300 Subject: [PATCH 32/48] test --- infra/nginx.conf | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index 0a0f91f..5611e8a 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -20,15 +20,12 @@ server { location /media/ { alias /app/media/; - } - - location /static/admin/ { - root /staticfiles/; } - - location /static/rest-framework/ { - root /staticfiles/; - } + + location / { + alias /staticfiles/; + index index.html index.htm; + } error_page 500 502 503 504 /50x.html; location = /50x.html { From 3ef53d93c22ed7ecbdbc169734a802a2e2d6da6d Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Fri, 22 Sep 2023 17:42:34 +0300 Subject: [PATCH 33/48] test --- infra/nginx.conf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index 5611e8a..31d460c 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -19,13 +19,14 @@ server { } location /media/ { + proxy_set_header Host $http_host; alias /app/media/; } - location / { - alias /staticfiles/; - index index.html index.htm; - } + location / { + alias /staticfiles/; + try_files $uri $uri/ /index.html; + } error_page 500 502 503 504 /50x.html; location = /50x.html { From 87e8cbbe34fdbf3888d4d65685eaf95dcae2432e Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Fri, 22 Sep 2023 18:00:17 +0300 Subject: [PATCH 34/48] test --- infra/nginx.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/infra/nginx.conf b/infra/nginx.conf index 31d460c..a6567d8 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -23,6 +23,7 @@ server { alias /app/media/; } + location / { alias /staticfiles/; try_files $uri $uri/ /index.html; From 7c3957b515315887561da679ccf007b1d5906346 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Fri, 22 Sep 2023 18:15:16 +0300 Subject: [PATCH 35/48] test --- infra/nginx.conf | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index a6567d8..4ed3b9d 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -1,6 +1,8 @@ server { - server_tokens off; + listen 80; + index index.html; + server_tokens off; client_max_body_size 30M; location /api/docs/ { @@ -29,9 +31,9 @@ server { try_files $uri $uri/ /index.html; } - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /var/html/frontend/; - } + # error_page 500 502 503 504 /50x.html; + # location = /50x.html { + # root /var/html/frontend/; + # } } \ No newline at end of file From 00a54e5b8e432622621e5269b98e2fb6a2964191 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Fri, 22 Sep 2023 18:33:21 +0300 Subject: [PATCH 36/48] test --- infra/nginx.conf | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index 4ed3b9d..d410495 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -1,8 +1,6 @@ server { - - listen 80; - index index.html; server_tokens off; + listen 80; client_max_body_size 30M; location /api/docs/ { @@ -23,17 +21,28 @@ server { location /media/ { proxy_set_header Host $http_host; alias /app/media/; + } + + location /static/ { + root /staticfiles/; } - - - location / { - alias /staticfiles/; - try_files $uri $uri/ /index.html; - } + + # location /static/rest-framework/ { + # root /staticfiles/; + # } - # error_page 500 502 503 504 /50x.html; - # location = /50x.html { - # root /var/html/frontend/; - # } + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri /index.html; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /var/html/frontend/; + } } \ No newline at end of file From b21cdf162e0fc41e2022890f8dfe12834996e2f3 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Fri, 22 Sep 2023 19:42:59 +0300 Subject: [PATCH 37/48] test --- infra/nginx.conf | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index d410495..92fc6a7 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -3,6 +3,7 @@ server { listen 80; client_max_body_size 30M; + location /api/docs/ { root /usr/share/nginx/html; try_files $uri $uri/redoc.html; @@ -17,19 +18,21 @@ server { proxy_set_header Host $http_host; proxy_pass http://backend:8000/admin/; } - + location /media/ { proxy_set_header Host $http_host; alias /app/media/; } - location /static/ { - root /staticfiles/; + location /static/admin/ { + root /staticfiles/; } + + - # location /static/rest-framework/ { - # root /staticfiles/; - # } + location /static/rest-framework/ { + root /staticfiles/; + } location / { root /usr/share/nginx/html; From d2c95f67b0551158b0fc49a0cb007572c9529f34 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 23 Sep 2023 11:05:34 +0300 Subject: [PATCH 38/48] test --- docker-compose.production.yml | 1 + infra/nginx.conf | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 681b991..a31963d 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -5,6 +5,7 @@ volumes: static_fg: media_fg: + services: db: image: postgres:13 diff --git a/infra/nginx.conf b/infra/nginx.conf index 92fc6a7..0567ce4 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -28,8 +28,6 @@ server { root /staticfiles/; } - - location /static/rest-framework/ { root /staticfiles/; } From 890f56d390f92e389032ba5c272372bd86d645e4 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 23 Sep 2023 11:22:58 +0300 Subject: [PATCH 39/48] test --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 62b88fe..a9dc9aa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -81,6 +81,7 @@ jobs: push: true tags: ${{ secrets.DOCKER_USERNAME }}/foodgram_frontend:latest + deploy: runs-on: ubuntu-latest needs: From ffd39f55c3f5d3c030f3a3a82dad8108d25d9455 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 23 Sep 2023 12:17:39 +0300 Subject: [PATCH 40/48] test --- infra/nginx.conf | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index 0567ce4..ac78733 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -24,23 +24,23 @@ server { alias /app/media/; } - location /static/admin/ { + location /static/{ root /staticfiles/; } - location /static/rest-framework/ { - root /staticfiles/; - } + # location /static/rest-framework/ { + # root /staticfiles/; + # } - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri /index.html; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } + # location / { + # root /usr/share/nginx/html; + # index index.html index.htm; + # try_files $uri /index.html; + # proxy_set_header Host $host; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + # } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/html/frontend/; From c80659f6635eaa68fdd6345ee754078ddbd20e52 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 23 Sep 2023 12:49:25 +0300 Subject: [PATCH 41/48] test --- infra/nginx.conf | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index ac78733..7615361 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -4,10 +4,10 @@ server { client_max_body_size 30M; - location /api/docs/ { - root /usr/share/nginx/html; - try_files $uri $uri/redoc.html; - } + # location /api/docs/ { + # root /usr/share/nginx/html; + # try_files $uri $uri/redoc.html; + # } location /api/ { proxy_set_header Host $http_host; @@ -25,7 +25,8 @@ server { } location /static/{ - root /staticfiles/; + alias /staticfiles/; + index index.html; } # location /static/rest-framework/ { From 3d0d94326a57217c858c6598d91a74ce040fc98e Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 23 Sep 2023 13:16:55 +0300 Subject: [PATCH 42/48] test --- .github/workflows/main.yml | 3 +- backend/recipes/migrations/0001_initial.py | 124 ------------------ ...tag_recipe_alter_recipetag_tag_and_more.py | 34 ----- ...er_recipeingredient_ingredient_and_more.py | 33 ----- .../0004_subscribe_delete_follow.py | 27 ---- .../migrations/0005_alter_favorite_recipe.py | 19 --- backend/users/migrations/0001_initial.py | 31 ----- ...s_user_date_joined_user_groups_and_more.py | 72 ---------- infra/nginx.conf | 3 +- 9 files changed, 3 insertions(+), 343 deletions(-) delete mode 100644 backend/recipes/migrations/0001_initial.py delete mode 100644 backend/recipes/migrations/0002_alter_recipetag_recipe_alter_recipetag_tag_and_more.py delete mode 100644 backend/recipes/migrations/0003_alter_recipeingredient_ingredient_and_more.py delete mode 100644 backend/recipes/migrations/0004_subscribe_delete_follow.py delete mode 100644 backend/recipes/migrations/0005_alter_favorite_recipe.py delete mode 100644 backend/users/migrations/0001_initial.py delete mode 100644 backend/users/migrations/0002_alter_user_managers_user_date_joined_user_groups_and_more.py diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a9dc9aa..05cdd92 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -81,7 +81,7 @@ jobs: push: true tags: ${{ secrets.DOCKER_USERNAME }}/foodgram_frontend:latest - + deploy: runs-on: ubuntu-latest needs: @@ -112,6 +112,7 @@ jobs: sudo docker compose -f docker-compose.production.yml pull sudo docker compose -f docker-compose.production.yml down sudo docker compose -f docker-compose.production.yml up -d + sudo docker compose -f docker-compose.production.yml exec backend python manage.py makemigrations sudo docker compose -f docker-compose.production.yml exec backend python manage.py migrate sudo docker compose -f docker-compose.production.yml exec backend python manage.py collectstatic sudo docker compose -f docker-compose.production.yml exec backend cp -r /app/collected_static/. /backend_static/static/ diff --git a/backend/recipes/migrations/0001_initial.py b/backend/recipes/migrations/0001_initial.py deleted file mode 100644 index 88548cf..0000000 --- a/backend/recipes/migrations/0001_initial.py +++ /dev/null @@ -1,124 +0,0 @@ -# Generated by Django 4.2.4 on 2023-08-29 18:38 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Ingredient', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=150, verbose_name='Название ингредиента')), - ('measurement_unit', models.CharField(max_length=150, verbose_name='Единица измерения')), - ], - options={ - 'verbose_name': 'Ингредиент', - 'verbose_name_plural': 'Ингредиенты', - 'ordering': ['name'], - }, - ), - migrations.CreateModel( - name='Recipe', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=100, verbose_name='Название рецепта')), - ('image', models.ImageField(blank=True, upload_to='recipes/', verbose_name='Картинка')), - ('text', models.TextField(help_text='Введите текст рецепта', verbose_name='Текст рецепта')), - ('cooking_time', models.PositiveSmallIntegerField(default=1, verbose_name='Время приготовления')), - ('pub_date', models.DateTimeField(auto_now_add=True, verbose_name='Дата публикации')), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipes', to=settings.AUTH_USER_MODEL, verbose_name='Автор')), - ('ingredients', models.ManyToManyField(related_name='recipes', to='recipes.ingredient', verbose_name='Название ингредиента')), - ], - options={ - 'verbose_name': 'Рецепт', - 'verbose_name_plural': 'Рецепты', - 'ordering': ['-pub_date'], - }, - ), - migrations.CreateModel( - name='Tag', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=150, verbose_name='Название тега')), - ('color', models.CharField(max_length=10, verbose_name='Цветовой код')), - ('slug', models.SlugField(unique=True, verbose_name='Слаг')), - ], - options={ - 'verbose_name': 'Тег', - 'verbose_name_plural': 'Теги', - 'ordering': ['name'], - }, - ), - migrations.CreateModel( - name='ShoppingCart', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('recipe', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shopping_cart', to='recipes.recipe', verbose_name='Рецепт')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shopping_cart', to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')), - ], - options={ - 'verbose_name': 'Список покупок', - 'verbose_name_plural': 'Списки покупок', - 'ordering': ['recipe'], - }, - ), - migrations.CreateModel( - name='RecipeTag', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('recipe', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recipes.recipe')), - ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recipes.tag')), - ], - options={ - 'ordering': ['recipe'], - }, - ), - migrations.CreateModel( - name='RecipeIngredient', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('amount', models.PositiveSmallIntegerField(verbose_name='Количество')), - ('ingredient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recipes.ingredient')), - ('recipe', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recipes.recipe')), - ], - options={ - 'ordering': ['recipe'], - }, - ), - migrations.AddField( - model_name='recipe', - name='tags', - field=models.ManyToManyField(related_name='recipes', to='recipes.tag', verbose_name='Теги'), - ), - migrations.CreateModel( - name='Follow', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='following', to=settings.AUTH_USER_MODEL, verbose_name='Автор')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='follower', to=settings.AUTH_USER_MODEL, verbose_name='Подписчик')), - ], - ), - migrations.CreateModel( - name='Favorite', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('recipe', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorites', to='recipes.recipe', verbose_name='Рецепт')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorites', to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')), - ], - options={ - 'verbose_name': 'Избранное', - 'verbose_name_plural': 'Избранное', - 'ordering': ['recipe'], - }, - ), - ] diff --git a/backend/recipes/migrations/0002_alter_recipetag_recipe_alter_recipetag_tag_and_more.py b/backend/recipes/migrations/0002_alter_recipetag_recipe_alter_recipetag_tag_and_more.py deleted file mode 100644 index fb04f1b..0000000 --- a/backend/recipes/migrations/0002_alter_recipetag_recipe_alter_recipetag_tag_and_more.py +++ /dev/null @@ -1,34 +0,0 @@ -# Generated by Django 4.2.4 on 2023-09-08 09:39 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('recipes', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='recipetag', - name='recipe', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipe_in_tags', to='recipes.recipe'), - ), - migrations.AlterField( - model_name='recipetag', - name='tag', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tag_in_recipes', to='recipes.tag'), - ), - migrations.AlterField( - model_name='tag', - name='color', - field=models.CharField(max_length=10, unique=True, verbose_name='Цветовой код'), - ), - migrations.AlterField( - model_name='tag', - name='name', - field=models.CharField(max_length=150, unique=True, verbose_name='Название тега'), - ), - ] diff --git a/backend/recipes/migrations/0003_alter_recipeingredient_ingredient_and_more.py b/backend/recipes/migrations/0003_alter_recipeingredient_ingredient_and_more.py deleted file mode 100644 index 9f039e1..0000000 --- a/backend/recipes/migrations/0003_alter_recipeingredient_ingredient_and_more.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 4.2.4 on 2023-09-08 09:54 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('recipes', '0002_alter_recipetag_recipe_alter_recipetag_tag_and_more'), - ] - - operations = [ - migrations.AlterField( - model_name='recipeingredient', - name='ingredient', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ingr_in_recipes', to='recipes.ingredient'), - ), - migrations.AlterField( - model_name='recipeingredient', - name='recipe', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipe_in_ingr', to='recipes.recipe'), - ), - migrations.CreateModel( - name='IngredientAmount', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('amount', models.PositiveIntegerField(default=1, verbose_name='Количество')), - ('ingredient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ingredient', to='recipes.ingredient')), - ('recipe', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipe', to='recipes.recipe')), - ], - ), - ] diff --git a/backend/recipes/migrations/0004_subscribe_delete_follow.py b/backend/recipes/migrations/0004_subscribe_delete_follow.py deleted file mode 100644 index 9bdf2c3..0000000 --- a/backend/recipes/migrations/0004_subscribe_delete_follow.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 4.2.4 on 2023-09-09 14:13 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('recipes', '0003_alter_recipeingredient_ingredient_and_more'), - ] - - operations = [ - migrations.CreateModel( - name='Subscribe', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subscribing', to=settings.AUTH_USER_MODEL, verbose_name='Автор')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subscriber', to=settings.AUTH_USER_MODEL, verbose_name='Подписчик')), - ], - ), - migrations.DeleteModel( - name='Follow', - ), - ] diff --git a/backend/recipes/migrations/0005_alter_favorite_recipe.py b/backend/recipes/migrations/0005_alter_favorite_recipe.py deleted file mode 100644 index 101497a..0000000 --- a/backend/recipes/migrations/0005_alter_favorite_recipe.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 4.2.4 on 2023-09-09 15:37 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('recipes', '0004_subscribe_delete_follow'), - ] - - operations = [ - migrations.AlterField( - model_name='favorite', - name='recipe', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='favorites_recipes', to='recipes.recipe', verbose_name='Рецепт'), - ), - ] diff --git a/backend/users/migrations/0001_initial.py b/backend/users/migrations/0001_initial.py deleted file mode 100644 index 2012a9e..0000000 --- a/backend/users/migrations/0001_initial.py +++ /dev/null @@ -1,31 +0,0 @@ -# Generated by Django 3.2.3 on 2023-08-29 11:27 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='User', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('password', models.CharField(max_length=128, verbose_name='password')), - ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), - ('email', models.EmailField(max_length=100, unique=True, verbose_name='e-mail')), - ('username', models.CharField(max_length=40, verbose_name='Имя пользователя')), - ('first_name', models.CharField(max_length=40, verbose_name='Имя')), - ('last_name', models.CharField(max_length=40, verbose_name='Фамилия')), - ], - options={ - 'verbose_name': 'Пользователь', - 'verbose_name_plural': 'Пользователи', - 'ordering': ['id'], - }, - ), - ] diff --git a/backend/users/migrations/0002_alter_user_managers_user_date_joined_user_groups_and_more.py b/backend/users/migrations/0002_alter_user_managers_user_date_joined_user_groups_and_more.py deleted file mode 100644 index 7aaaea7..0000000 --- a/backend/users/migrations/0002_alter_user_managers_user_date_joined_user_groups_and_more.py +++ /dev/null @@ -1,72 +0,0 @@ -# Generated by Django 4.2.4 on 2023-08-29 18:38 - -import django.contrib.auth.models -from django.db import migrations, models -import django.utils.timezone - - -class Migration(migrations.Migration): - - dependencies = [ - ('auth', '0012_alter_user_first_name_max_length'), - ('users', '0001_initial'), - ] - - operations = [ - migrations.AlterModelManagers( - name='user', - managers=[ - ('objects', django.contrib.auth.models.UserManager()), - ], - ), - migrations.AddField( - model_name='user', - name='date_joined', - field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined'), - ), - migrations.AddField( - model_name='user', - name='groups', - field=models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups'), - ), - migrations.AddField( - model_name='user', - name='is_active', - field=models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active'), - ), - migrations.AddField( - model_name='user', - name='is_staff', - field=models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status'), - ), - migrations.AddField( - model_name='user', - name='is_superuser', - field=models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status'), - ), - migrations.AddField( - model_name='user', - name='user_permissions', - field=models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions'), - ), - migrations.AlterField( - model_name='user', - name='email', - field=models.EmailField(max_length=100, unique=True, verbose_name='email address'), - ), - migrations.AlterField( - model_name='user', - name='first_name', - field=models.CharField(max_length=40), - ), - migrations.AlterField( - model_name='user', - name='last_name', - field=models.CharField(max_length=40), - ), - migrations.AlterField( - model_name='user', - name='username', - field=models.CharField(max_length=40), - ), - ] diff --git a/infra/nginx.conf b/infra/nginx.conf index 7615361..bcf08d6 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -25,8 +25,7 @@ server { } location /static/{ - alias /staticfiles/; - index index.html; + root /staticfiles/; } # location /static/rest-framework/ { From 3a97ad295bbdc0ee50d0c82ee586cb2419fbf130 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 23 Sep 2023 13:42:48 +0300 Subject: [PATCH 43/48] test --- infra/nginx.conf | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index bcf08d6..b6599ea 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -24,23 +24,23 @@ server { alias /app/media/; } - location /static/{ + location /static/admin { root /staticfiles/; } - # location /static/rest-framework/ { - # root /staticfiles/; - # } + location /static/rest_framework/ { + root /staticfiles/; + } - # location / { - # root /usr/share/nginx/html; - # index index.html index.htm; - # try_files $uri /index.html; - # proxy_set_header Host $host; - # proxy_set_header X-Real-IP $remote_addr; - # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - # proxy_set_header X-Forwarded-Proto $scheme; - # } + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri /index.html; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/html/frontend/; From a8db838c23b61d81f1f7bf388d1481ca034c0ee0 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 23 Sep 2023 13:46:29 +0300 Subject: [PATCH 44/48] =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B8=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- infra/nginx.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/infra/nginx.conf b/infra/nginx.conf index b6599ea..67f729f 100644 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -3,7 +3,6 @@ server { listen 80; client_max_body_size 30M; - # location /api/docs/ { # root /usr/share/nginx/html; # try_files $uri $uri/redoc.html; From b8b452d5f649bcaee262e2d1dc78a12dd1ee089c Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 23 Sep 2023 19:24:29 +0300 Subject: [PATCH 45/48] =?UTF-8?q?=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 1 - README.md | 96 ++++++++++++++- backend/api/filters.py | 10 +- backend/api/serializers.py | 14 ++- backend/api/views.py | 21 ++-- backend/docs/{font.ttf => TNRfont.ttf} | Bin backend/docs/arialfont.ttf | Bin 0 -> 409032 bytes backend/foodgram/settings.py | 18 +-- .../recipes/photo_2023-08-23_14-02-41.jpg | Bin 90801 -> 0 bytes backend/recipes/admin.py | 30 +++-- backend/recipes/migrations/0001_initial.py | 116 ++++++++++++++++++ backend/recipes/migrations/0002_initial.py | 93 ++++++++++++++ ..._alter_ingredientamount_amount_and_more.py | 29 +++++ backend/recipes/models.py | 23 ++-- backend/users/migrations/0001_initial.py | 43 +++++++ infra/nginx.conf | 8 +- 16 files changed, 446 insertions(+), 56 deletions(-) rename backend/docs/{font.ttf => TNRfont.ttf} (100%) create mode 100644 backend/docs/arialfont.ttf delete mode 100644 backend/media/recipes/photo_2023-08-23_14-02-41.jpg create mode 100644 backend/recipes/migrations/0001_initial.py create mode 100644 backend/recipes/migrations/0002_initial.py create mode 100644 backend/recipes/migrations/0003_alter_ingredientamount_amount_and_more.py create mode 100644 backend/users/migrations/0001_initial.py diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 05cdd92..02b0920 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -112,7 +112,6 @@ jobs: sudo docker compose -f docker-compose.production.yml pull sudo docker compose -f docker-compose.production.yml down sudo docker compose -f docker-compose.production.yml up -d - sudo docker compose -f docker-compose.production.yml exec backend python manage.py makemigrations sudo docker compose -f docker-compose.production.yml exec backend python manage.py migrate sudo docker compose -f docker-compose.production.yml exec backend python manage.py collectstatic sudo docker compose -f docker-compose.production.yml exec backend cp -r /app/collected_static/. /backend_static/static/ diff --git a/README.md b/README.md index ffee0a4..3917f6d 100644 --- a/README.md +++ b/README.md @@ -1 +1,95 @@ -# praktikum_new_diplom + +# Foodgram +Проект "Продуктовый помошник" (Foodgram) — сайт с рецептами. + +## Технологии: +Python 3.9 +Django 3.2.3 +djangorestframework 3.12.4 +Nginx +gunicorn +Docker + +## Описание работы: +В проекте "Проуктовый помощник" любители вкусно готовить могут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Пользователям сайта также будет доступен сервис «Список покупок». Он позволит создавать список продуктов, которые нужно купить для приготовления выбранных блюд. + +## Установка проекта +- Сделайте fork репозитория, затем клонируйте его: +``` +git clone https://github.com/ZebraHr/foodgram-project-reactl +``` +- Для адаптации проекта на своем удаленном сервере добавьте секреты в GitHub Actions: +``` +DOCKER_USERNAME # имя пользователя в DockerHub +DOCKER_PASSWORD # пароль пользователя в DockerHub +HOST # ip_address сервера +USER # имя пользователя +SSH_KEY # приватный ssh-ключ (cat ~/.ssh/id_rsa) +SSH_PASSPHRASE # кодовая фраза (пароль) для ssh-ключа + +TELEGRAM_TO # id телеграм-аккаунта (можно узнать у @userinfobot, команда /start) +TELEGRAM_TOKEN # токен бота (получить токен можно у @BotFather, /token, имя бота) +``` +- На удаленном сервере создайте папку foodgram/ +- На удаленном сервере в папке проекта cоздайте файл .env: +``` +POSTGRES_DB=<Желаемое_имя_базы_данных> +POSTGRES_USER=<Желаемое_имя_пользователя_базы_данных> +POSTGRES_PASSWORD=<Желаемый_пароль_пользователя_базы_данных> +DB_HOST=db +DB_PORT=5432 + +SECRET_KEY = 'ваш_secret_key' +ALLOWED_HOSTS = ip_удаленного сервера, 127.0.0.1, localhost +DEBUG = False +``` +- Установка Nginx. Находясь на удалённом сервере, из любой директории выполните команду, затем запустите Nginx: +``` +sudo apt install nginx -y +sudo systemctl start nginx +``` +- Перейдите в файл конфигурации nginx и измените его настройки на следующие: +``` +nano /etc/nginx/sites-enabled/default +``` +``` +server { + server_name server_name <публичный-IP-адрес> <доменное-имя>; + server_tokens_off; + client_max_body_size 30M; + + location / { + proxy_set_header Host $http_host; + proxy_pass http://127.0.0.1:8000; + } + +} +``` +- Перезарузите Nginx: +``` +sudo nginx -t +sudo systemctl reload nginx +``` +- Откройте порты для фаервола и активируйте его: +``` +sudo ufw allow 'Nginx Full' +sudo ufw allow OpenSSH +sudo ufw enable +``` +- (Опционально) Получите SSL-сертификат для вашего доменного имени с помощью Certbot: +``` +sudo apt install snapd +sudo snap install core; sudo snap refresh core +sudo snap install --classic certbot +sudo ln -s /snap/bin/certbot /usr/bin/certbot +sudo certbot --nginx +``` +- Пуш в любую ветку запускает тестирование и деплой Foodgram на ваш удаленный сервер, а после успешного деплоя вам приходит оповещение в телеграм. + +### Автор +Анна Победоносцева + +Студент Яндекс Практикума ["Python-разаботчик плюс"](https://practicum.yandex.ru/python-developer-plus/?from=catalog) + +GitHub: +(https://github.com/ZebraHr) diff --git a/backend/api/filters.py b/backend/api/filters.py index a6ba613..41fad0d 100644 --- a/backend/api/filters.py +++ b/backend/api/filters.py @@ -11,9 +11,9 @@ class Meta: fields = ('name',) -IN_NOT_IN_LIST = ( - (0, 'Not_In_List'), - (1, 'In_List'), +IN_NOT_IN = ( + (0, 'Not_In'), + (1, 'In'), ) @@ -24,10 +24,10 @@ class RecipeFilter(FilterSet): queryset=User.objects.all() ) is_in_shopping_cart = filters.ChoiceFilter( - choices=IN_NOT_IN_LIST, method='get_is_in' + choices=IN_NOT_IN, method='get_is_in' ) is_favorited = filters.ChoiceFilter( - choices=IN_NOT_IN_LIST, + choices=IN_NOT_IN, method='get_is_in' ) tags = filters.AllValuesMultipleFilter( diff --git a/backend/api/serializers.py b/backend/api/serializers.py index b27b7bf..db71959 100644 --- a/backend/api/serializers.py +++ b/backend/api/serializers.py @@ -6,8 +6,6 @@ UserSerializer) from rest_framework import serializers from rest_framework.relations import SlugRelatedField -# from rest_framework.fields import IntegerField -# from rest_framework.exceptions import ValidationError from recipes.models import (Ingredient, Tag, @@ -19,7 +17,9 @@ from users.models import User -class Base64ImageField(serializers.ImageField): +class Base64ImageFieldSerializer(serializers.ImageField): + """Сериализатор для декодирования картинки. + Декодирует строку base64.""" def to_internal_value(self, data): if isinstance(data, str) and data.startswith('data:image'): format, imgstr = data.split(';base64,') @@ -92,6 +92,7 @@ class Meta: class IngredientInRecipeWriteSerializer(serializers.ModelSerializer): + """Сериализатор для игредиентов в рецепте.""" id = serializers.PrimaryKeyRelatedField(queryset=Ingredient.objects.all()) class Meta: @@ -101,7 +102,7 @@ class Meta: class RecipeCreateSerializer(serializers.ModelSerializer): """Серилизатор для создания рецепта.""" - image = Base64ImageField( + image = Base64ImageFieldSerializer( required=False, allow_null=True ) @@ -168,6 +169,7 @@ def to_representation(self, instance): class Hex2NameColor(serializers.Field): + """Сериализатор для добавления цветов через HEX.""" def to_representation(self, value): return value @@ -210,7 +212,7 @@ def get_is_favorited(self, obj): def get_is_in_shopping_cart(self, obj): request = self.context.get('request') - if not request or request.user.is_anonymous: + if request.user.is_anonymous: return False return ShoppingCart.objects.filter(recipe=obj, user=request.user).exists() @@ -259,7 +261,7 @@ def get_recipes(self, obj): class RecipeShortSerializer(serializers.ModelSerializer): - image = Base64ImageField() + image = Base64ImageFieldSerializer() class Meta: model = Recipe diff --git a/backend/api/views.py b/backend/api/views.py index 24d2c72..0a58cdf 100644 --- a/backend/api/views.py +++ b/backend/api/views.py @@ -3,7 +3,7 @@ from rest_framework.viewsets import ReadOnlyModelViewSet from rest_framework.permissions import (IsAuthenticatedOrReadOnly, IsAuthenticated, - AllowAny, + # AllowAny, SAFE_METHODS) from rest_framework.filters import SearchFilter from rest_framework.response import Response @@ -15,6 +15,7 @@ from reportlab.pdfgen import canvas from reportlab.pdfbase import pdfmetrics, ttfonts from django.db.models import Sum +from django.conf import settings from api.serializers import (UserCreateSerializer, UserReadSerializer, @@ -33,7 +34,7 @@ Subscribe, IngredientAmount) from users.models import User -from api.permissions import IsAmdinOrReadOnly +from api.permissions import IsAmdinOrReadOnly, IsOwnerOrReadOnly from api.paginations import RecipePagination from api.filters import RecipeFilter, IngredientFilter @@ -121,7 +122,7 @@ class RecipeViewSet(viewsets.ModelViewSet): """Вьюсет рецепта. Просмотр, создание, редактирование.""" queryset = Recipe.objects.all() - permission_classes = [AllowAny] + permission_classes = [IsOwnerOrReadOnly | IsAmdinOrReadOnly] pagination_class = RecipePagination filter_backends = (DjangoFilterBackend,) filterset_class = RecipeFilter @@ -207,15 +208,15 @@ def download_shopping_cart(self, request): f' - {i["amount"]}' for i in ingredients]) text = canvas.Canvas(buffer) - font = ttfonts.TTFont('Times-Roman', './docs/font.ttf') + font = ttfonts.TTFont('Arial', './docs/arialfont.ttf') pdfmetrics.registerFont(font) - text.setFont('Times-Roman', 20) - text.drawString(200, 750, 'Список покупок') - text.setFont('Times-Roman', 14) - height = 700 + text.setFont('Arial', settings.HEAD_FONT_SIZE) + text.drawString(settings.HEAD_INDENT, settings.HEAD_HEIGHT, + 'Ваш список покупок:') + text.setFont('Arial', settings.TEXT_FONT_SIZE) for line in shopping_list: - text.drawString(50, height, line) - height -= 25 + text.drawString(settings.TEXT_INDENT, settings.TEXT_HEIGHT, line) + settings.TEXT_HEIGHT -= settings.LINE_SPACE text.showPage() text.save() buffer.seek(0) diff --git a/backend/docs/font.ttf b/backend/docs/TNRfont.ttf similarity index 100% rename from backend/docs/font.ttf rename to backend/docs/TNRfont.ttf diff --git a/backend/docs/arialfont.ttf b/backend/docs/arialfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a882d32030476dc9f9113dfd4c7e0424cbe0ebc5 GIT binary patch literal 409032 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 z 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 Date: Sat, 23 Sep 2023 19:27:33 +0300 Subject: [PATCH 46/48] =?UTF-8?q?=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/recipes/models.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/recipes/models.py b/backend/recipes/models.py index b4472dd..a86f30d 100644 --- a/backend/recipes/models.py +++ b/backend/recipes/models.py @@ -71,8 +71,7 @@ class Recipe(models.Model): ) cooking_time = models.PositiveSmallIntegerField( verbose_name='Время приготовления', - validators=[validators.MinValueValidator(1)] - ) + validators=[validators.MinValueValidator(1)]) pub_date = models.DateTimeField( verbose_name='Дата публикации', auto_now_add=True From 2fb4b7d7add5fdac61db6e8dfd501c775db863cc Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 23 Sep 2023 20:03:01 +0300 Subject: [PATCH 47/48] =?UTF-8?q?=D1=84=D0=B8=D0=BD=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/recipes/models.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/recipes/models.py b/backend/recipes/models.py index a86f30d..09594eb 100644 --- a/backend/recipes/models.py +++ b/backend/recipes/models.py @@ -71,7 +71,9 @@ class Recipe(models.Model): ) cooking_time = models.PositiveSmallIntegerField( verbose_name='Время приготовления', - validators=[validators.MinValueValidator(1)]) + default=1, + validators=[validators.MinValueValidator(1)] + ) pub_date = models.DateTimeField( verbose_name='Дата публикации', auto_now_add=True @@ -98,6 +100,7 @@ class RecipeIngredient(models.Model): related_name='ingr_in_recipes') amount = models.PositiveSmallIntegerField( 'Количество', + default=1, validators=[validators.MinValueValidator(1)] ) @@ -213,5 +216,6 @@ class IngredientAmount(models.Model): ) amount = models.PositiveIntegerField( 'Количество', + default=1, validators=[validators.MinValueValidator(1)] ) From 84d84ba9aae2af95b9637ec81e55e097886f2cc6 Mon Sep 17 00:00:00 2001 From: Anna Pobedonostseva Date: Sat, 23 Sep 2023 20:07:38 +0300 Subject: [PATCH 48/48] =?UTF-8?q?=D1=84=D0=B8=D0=BD=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/recipes/models.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/recipes/models.py b/backend/recipes/models.py index 09594eb..ff334ab 100644 --- a/backend/recipes/models.py +++ b/backend/recipes/models.py @@ -72,8 +72,7 @@ class Recipe(models.Model): cooking_time = models.PositiveSmallIntegerField( verbose_name='Время приготовления', default=1, - validators=[validators.MinValueValidator(1)] - ) + validators=[validators.MinValueValidator(1)]) pub_date = models.DateTimeField( verbose_name='Дата публикации', auto_now_add=True