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