Files
chunyu_project/history/serializers.py
T

30 lines
1.0 KiB
Python

from adrf.serializers import ModelSerializer
from django.utils import timezone
from datetime import timedelta
from .models import BrowsingHistory
class BrowsingHistorySerializer(ModelSerializer):
class Meta:
model = BrowsingHistory
fields = ['id', 'type', 'title', 'description', 'image', 'category', 'link', 'viewed_at']
read_only_fields = ['viewed_at']
class BrowsingHistoryCreateSerializer(ModelSerializer):
class Meta:
model = BrowsingHistory
fields = ['type', 'title', 'description', 'image', 'category', 'link']
async def acreate(self, validated_data):
user = self.context['request'].user
link = validated_data.get('link', '')
today = timezone.now().date()
existing = await BrowsingHistory.objects.filter(
user=user, link=link, viewed_at__date=today
).afirst()
if existing:
await existing.asave()
return existing
return await BrowsingHistory.objects.acreate(user=user, **validated_data)