Browse Source

make slugs editable through admin panel

master
Mohsen Taba 2 months ago
parent
commit
3f9a1dd4e1
  1. 11
      apps/blog/models.py
  2. 3
      apps/course/serializers/admin.py

11
apps/blog/models.py

@ -116,10 +116,11 @@ class Blog(models.Model):
return None
def save(self, *args, **kwargs):
try:
self.slug = generate_language_slugs(self.title)
except Exception:
self.slug = []
if not self.slug:
try:
self.slug = generate_language_slugs(self.title)
except Exception:
self.slug = []
super().save(*args, **kwargs)
@ -205,4 +206,4 @@ class BlogSeo(models.Model):
def __str__(self):
lang = getattr(self.language, 'code', None) if self.language else None
return f"SEO({lang or '-'}) - {self.title or ''}"
return f"SEO({lang or '-'}) - {self.title or ''}"

3
apps/course/serializers/admin.py

@ -84,6 +84,7 @@ class AdminCourseListSerializer(serializers.ModelSerializer):
class AdminCourseDetailSerializer(serializers.ModelSerializer):
slug = serializers.SlugField(required=False, allow_blank=True)
category_name = serializers.CharField(source='category.name', read_only=True)
professor_name = serializers.CharField(source='professor.fullname', read_only=True)
thumbnail = FileFieldSerializer(required=False, allow_null=True)
@ -124,7 +125,7 @@ class AdminCourseDetailSerializer(serializers.ModelSerializer):
'created_at',
'updated_at'
]
read_only_fields = ['id', 'slug', 'final_price', 'created_at', 'updated_at']
read_only_fields = ['id', 'final_price', 'created_at', 'updated_at']
def get_participant_count(self, obj):
return obj.participants.count()

Loading…
Cancel
Save