Fix /api/locsext API

This commit is contained in:
2025-08-31 17:51:41 +09:00
parent 77acb7c016
commit a8c0f52860

View File

@ -577,13 +577,9 @@ class EntrySerializer(serializers.ModelSerializer):
event = serializers.PrimaryKeyRelatedField(queryset=NewEvent2.objects.all()) event = serializers.PrimaryKeyRelatedField(queryset=NewEvent2.objects.all())
category = serializers.PrimaryKeyRelatedField(queryset=NewCategory.objects.all()) category = serializers.PrimaryKeyRelatedField(queryset=NewCategory.objects.all())
owner = serializers.PrimaryKeyRelatedField(read_only=True) owner = serializers.PrimaryKeyRelatedField(read_only=True)
#date = serializers.DateTimeField(input_formats=['%Y-%m-%d']) date = serializers.DateTimeField(required=False, allow_null=True) # DateTimeFieldを使用
date = serializers.DateField(required=False, allow_null=True) # DateTimeFieldではなくDateFieldを使用
zekken_number = serializers.IntegerField() zekken_number = serializers.IntegerField()
#date = serializers.DateTimeField(default_timezone=timezone.get_current_timezone())
class Meta: class Meta:
model = Entry model = Entry
fields = [ fields = [
@ -597,36 +593,24 @@ class EntrySerializer(serializers.ModelSerializer):
def validate_date(self, value): def validate_date(self, value):
if isinstance(value, str): if isinstance(value, str):
try: try:
# 文字列をdatetimeオブジェクトに変換
value = datetime.strptime(value, "%Y-%m-%d") value = datetime.strptime(value, "%Y-%m-%d")
except ValueError: except ValueError:
raise serializers.ValidationError("Invalid date format. Use YYYY-MM-DD.") raise serializers.ValidationError("Invalid date format. Use YYYY-MM-DD.")
if isinstance(value, date): if isinstance(value, date) and not isinstance(value, datetime):
# dateオブジェクトをdatetimeオブジェクトに変換
value = datetime.combine(value, datetime.min.time()) value = datetime.combine(value, datetime.min.time())
if timezone.is_naive(value): if isinstance(value, datetime) and timezone.is_naive(value):
return timezone.make_aware(value, timezone.get_current_timezone()) return timezone.make_aware(value, timezone.get_current_timezone())
return value return value
#if isinstance(value, date):
# # dateオブジェクトをdatetimeオブジェクトに変換
# value = datetime.combine(value, datetime.min.time())
#if timezone.is_naive(value):
# return timezone.make_aware(value, timezone.get_current_timezone())
#return value
def validate_team(self, value): def validate_team(self, value):
if not value.members.exists(): if not value.members.exists():
raise serializers.ValidationError("チームにメンバーが登録されていません。") raise serializers.ValidationError("チームにメンバーが登録されていません。")
return value return value
def validate_date(self, value):
if isinstance(value, datetime):
return value.date()
return value
def validate(self, data): def validate(self, data):
team = data.get('team') team = data.get('team')
event = data.get('event') event = data.get('event')