From 421734794afd4876972f4f7a869ebe23672db8cd Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Thu, 22 May 2025 18:03:58 +0330 Subject: [PATCH] created at field --- backend/product/admin.py | 7 ++++--- .../0048_productvariant_created_at.py | 20 +++++++++++++++++++ backend/product/models.py | 3 +++ 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 backend/product/migrations/0048_productvariant_created_at.py diff --git a/backend/product/admin.py b/backend/product/admin.py index 9fe5c5f..783659a 100644 --- a/backend/product/admin.py +++ b/backend/product/admin.py @@ -168,7 +168,8 @@ class ProductVariantAdmin(ModelAdmin, ImportExportModelAdmin): export_form_class = ExportForm autocomplete_fields = ['product_attributes', 'images', 'in_pack_items', 'details'] warn_unsaved_form = True - readonly_fields = ['price'] + readonly_fields = ['price', 'created_at'] + list_display = ('product', 'created_at') # inlines = [DetailModelInLine] @admin.register(ProductModel) @@ -176,14 +177,14 @@ class ProductModelAdmin(ModelAdmin, ImportExportModelAdmin): import_form_class = ImportForm export_form_class = ExportForm inlines = [ProductVariantInLine] - readonly_fields = ('slug', ) + readonly_fields = ('slug', 'created_at') search_fields = ['name', 'description', ] list_filter = ['show', 'category'] autocomplete_fields = ['related_products', ] # compressed_fields = True warn_unsaved_form = True actions_list = ['redirect_to_learn', 'update_products_price'] - list_display = ['display_image', 'display_price', 'view', 'show', 'rating', 'category', ] + list_display = ['display_image', 'display_price', 'view', 'show', 'rating', 'category', 'created_at'] fieldsets = ( ('فیلد های اصلی', {'fields': ('name', 'description', 'category', 'related_products', 'show',), "classes": ["tab"],}), ('فیلد های سيو', {'fields': ('meta_description', 'meta_keywords', 'meta_rating', 'slug'), "classes": ["tab"],}), diff --git a/backend/product/migrations/0048_productvariant_created_at.py b/backend/product/migrations/0048_productvariant_created_at.py new file mode 100644 index 0000000..df88bbd --- /dev/null +++ b/backend/product/migrations/0048_productvariant_created_at.py @@ -0,0 +1,20 @@ +# Generated by Django 5.1.2 on 2025-05-22 14:31 + +import django.utils.timezone +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('product', '0047_alter_maincategorymodel_video'), + ] + + operations = [ + migrations.AddField( + model_name='productvariant', + name='created_at', + field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now, verbose_name='زمان ثبت محصول'), + preserve_default=False, + ), + ] diff --git a/backend/product/models.py b/backend/product/models.py index fa404df..8c77375 100644 --- a/backend/product/models.py +++ b/backend/product/models.py @@ -115,6 +115,7 @@ class ProductModel(models.Model): + def __str__(self): return self.name @@ -244,6 +245,8 @@ class ProductVariant(models.Model): video = models.FileField(upload_to='product_videos/', blank=True, null=True, verbose_name='ویدیو') details = models.ManyToManyField(ProductDetailModel, verbose_name='جزییات محصول', related_name='product') slider_category = models.ForeignKey(ShowCaseSlider, verbose_name='دسته بندی پورسانتی', blank=True, null=True, on_delete=models.CASCADE) + created_at = models.DateTimeField(auto_now_add=True, verbose_name='زمان ثبت محصول') + class Meta: verbose_name = 'تنوع محصول' verbose_name_plural = 'تنوع‌های محصول'