diff --git a/backend/core/settings.py b/backend/core/settings.py index 8797736..593d243 100644 --- a/backend/core/settings.py +++ b/backend/core/settings.py @@ -33,7 +33,7 @@ DEBUG = True # in prodcution it will use the postgres info you enterd in .env.local # in development it will use the sqlite BASE_DIR = Path(__file__).resolve().parent.parent -if DEBUG: +if not DEBUG: ALLOWED_HOSTS = ['127.0.0.1', 'localhost', DOMAIN, API_DOMAIN] CSRF_TRUSTED_ORIGINS = [ f"https://{DOMAIN}", diff --git a/backend/home/admin.py b/backend/home/admin.py index 0a97d0c..173a572 100644 --- a/backend/home/admin.py +++ b/backend/home/admin.py @@ -5,4 +5,8 @@ from unfold.admin import ModelAdmin @admin.register(SliderModel) class SliderAdmin(ModelAdmin): + pass + +@admin.register(HomeImageModel) +class HomeImageAdmin(ModelAdmin): pass \ No newline at end of file diff --git a/backend/home/migrations/0002_remove_slidermodel_product_slidermodel_description_and_more.py b/backend/home/migrations/0002_remove_slidermodel_product_slidermodel_description_and_more.py new file mode 100644 index 0000000..a72f609 --- /dev/null +++ b/backend/home/migrations/0002_remove_slidermodel_product_slidermodel_description_and_more.py @@ -0,0 +1,29 @@ +# Generated by Django 5.1.2 on 2025-01-27 18:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='slidermodel', + name='product', + ), + migrations.AddField( + model_name='slidermodel', + name='description', + field=models.TextField(default='', verbose_name='توضیحات'), + preserve_default=False, + ), + migrations.AddField( + model_name='slidermodel', + name='link', + field=models.URLField(default='', verbose_name='لینک'), + preserve_default=False, + ), + ] diff --git a/backend/home/migrations/0003_homeimagemodel.py b/backend/home/migrations/0003_homeimagemodel.py new file mode 100644 index 0000000..471577b --- /dev/null +++ b/backend/home/migrations/0003_homeimagemodel.py @@ -0,0 +1,26 @@ +# Generated by Django 5.1.2 on 2025-01-27 18:31 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0002_remove_slidermodel_product_slidermodel_description_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='HomeImageModel', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('image1', models.ImageField(upload_to='diff_image/')), + ('image2', models.ImageField(upload_to='diff_image/')), + ('title1', models.CharField(max_length=50)), + ('title2', models.CharField(max_length=50)), + ('description1', models.TextField()), + ('description2', models.TextField()), + ('unique_filed', models.CharField(choices=[('unique', 'unique')], default='unique', max_length=20, unique=True)), + ], + ), + ] diff --git a/backend/home/migrations/0004_homeimagemodel_link1_homeimagemodel_link2.py b/backend/home/migrations/0004_homeimagemodel_link1_homeimagemodel_link2.py new file mode 100644 index 0000000..5eaa27d --- /dev/null +++ b/backend/home/migrations/0004_homeimagemodel_link1_homeimagemodel_link2.py @@ -0,0 +1,25 @@ +# Generated by Django 5.1.2 on 2025-01-27 18:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0003_homeimagemodel'), + ] + + operations = [ + migrations.AddField( + model_name='homeimagemodel', + name='link1', + field=models.URLField(default=''), + preserve_default=False, + ), + migrations.AddField( + model_name='homeimagemodel', + name='link2', + field=models.URLField(default=''), + preserve_default=False, + ), + ] diff --git a/backend/home/models.py b/backend/home/models.py index f2819a6..421f5f7 100644 --- a/backend/home/models.py +++ b/backend/home/models.py @@ -3,8 +3,9 @@ from product.models import ProductModel class SliderModel(models.Model): - product = models.ForeignKey(ProductModel, on_delete=models.CASCADE, verbose_name='محصول') + link = models.URLField(verbose_name='لینک') title = models.CharField(max_length=50, verbose_name='عنوان') + description = models.TextField(verbose_name='توضیحات') image = models.ImageField(upload_to='slider_image/', blank=True, null=True, verbose_name='عکس اسلایدر') video = models.FileField(upload_to='slider_video/', blank=True, null=True, verbose_name='ویدیواسلایدر') @@ -16,3 +17,16 @@ class SliderModel(models.Model): verbose_name_plural = 'اسلایدر ها' +class HomeImageModel(models.Model): + image1 = models.ImageField(upload_to='diff_image/') + image2 = models.ImageField(upload_to='diff_image/') + title1 = models.CharField(max_length=50) + title2 = models.CharField(max_length=50) + description1 = models.TextField() + description2 = models.TextField() + link1 = models.URLField() + link2 = models.URLField() + unique = (('unique', 'unique'),) + unique_filed = models.CharField(max_length=20, choices=unique, unique=True, default='unique') + def __str__(self): + return f'{self.title1} - {self.title2}' diff --git a/backend/home/serializers.py b/backend/home/serializers.py index d0d97d8..dc5a3bc 100644 --- a/backend/home/serializers.py +++ b/backend/home/serializers.py @@ -8,4 +8,10 @@ from datetime import timedelta class SliderSerializer(serializers.ModelSerializer): class Meta: model = SliderModel - fields = "__all__" \ No newline at end of file + fields = "__all__" + + +class HomeImageSerializer(serializers.ModelSerializer): + class Meta: + model = HomeImageModel + exclude = ('unique_filed',) \ No newline at end of file diff --git a/backend/home/views.py b/backend/home/views.py index 29a9240..815a2e4 100644 --- a/backend/home/views.py +++ b/backend/home/views.py @@ -2,8 +2,8 @@ from django.shortcuts import render from rest_framework.views import APIView, Response from product.models import ProductModel, SubCategoryModel, DollorModel from product.serializers import SubCategorySerializer, ProductSerializer -from .serializers import SliderSerializer -from .models import SliderModel +from .serializers import SliderSerializer, HomeImageSerializer +from .models import SliderModel, HomeImageModel from rest_framework import status @@ -22,10 +22,14 @@ class HomeView(APIView): products_to_show = ProductModel.objects.filter(show=True) product_ser = ProductSerializer(instance=products_to_show, many=True, context={'request': request, 'dollor_price': dollor_price}) + home_image = HomeImageModel.objects.all().first() + home_image_ser = HomeImageSerializer(instance=home_image, context={'request': request}) + response = { 'sliders': slider_ser.data, 'sub_categories': sub_category_ser.data, - 'products': product_ser.data + 'products': product_ser.data, + 'difreance_section': home_image_ser.data } return Response(response, status=status.HTTP_200_OK) \ No newline at end of file