OnlineJudge/submission/serializers.py

24 lines
700 B
Python

from .models import Submission
from account.models import User
from utils.api import serializers
from judge.languages import language_names
class CreateSubmissionSerializer(serializers.Serializer):
problem_id = serializers.IntegerField()
language = serializers.ChoiceField(choices=language_names)
code = serializers.CharField(max_length=20000)
class SubmissionModelSerializer(serializers.ModelSerializer):
username = serializers.SerializerMethodField()
info = serializers.JSONField()
statistic_info = serializers.JSONField()
class Meta:
model = Submission
@staticmethod
def get_username(obj):
return User.objects.get(id=obj.user_id).username