first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 22:20:45 +03:00
commit d50f14bcb1
681 changed files with 65020 additions and 0 deletions

58
portfolio/serializers.py Normal file
View File

@@ -0,0 +1,58 @@
from rest_framework import serializers
from django.conf import settings
from portfolio.models import Category, Portfolio
class PortfolioCateSerializer(serializers.ModelSerializer):
image = serializers.SerializerMethodField()
parent = serializers.StringRelatedField()
class Meta:
model = Portfolio
fields = ['id', 'url', 'image', 'parent', 'created_at', 'updated_at', 'is_active']
def get_image(self, obj):
if obj.image:
# Sadece path döndür, domain olmadan
return obj.image.url
return None
class CategorySerializer(serializers.ModelSerializer):
parent = serializers.StringRelatedField() # ID yerine __str__ metodundaki değeri döndürür
image = serializers.SerializerMethodField()
portfolio_categories = serializers.SerializerMethodField() # ManyToMany ilişkisi üzerinden portfolio'ları getir
class Meta:
model = Category
fields = ['id', 'title', 'parent', 'is_active', 'created_at', 'updated_at', 'order', 'slug', 'image',
'keywords', 'description', 'portfolio_categories']
def get_image(self, obj):
if obj.image:
# Sadece path döndür, domain olmadan
return obj.image.url
return None
def get_portfolio_categories(self, obj):
"""Category'ye ait portfolio'ları döndürür"""
portfolios = obj.portfolio_categories.filter(is_active=True).all()
# Circular import'u önlemek için PortfolioCateSerializer kullanıyoruz
return PortfolioCateSerializer(portfolios, many=True, context=self.context).data
class PortfolioSerializer(serializers.ModelSerializer):
categories = CategorySerializer(read_only=True, many=True)
image = serializers.SerializerMethodField()
parent = serializers.StringRelatedField()
class Meta:
model = Portfolio
fields = ['id', 'url', 'categories', 'image', 'parent', 'created_at', 'updated_at', 'is_active']
def get_image(self, obj):
if obj.image:
# Sadece path döndür, domain olmadan
return obj.image.url
return None