0

Sorry for my english. I new in django, and i want create custom post. I have not model for this and i dont need create it. I cant understand how create normal post reqest in django. Bellow my try create it

view:

class CreateCustopPost(generics.GenericAPIView):

    permission_classes = (permissions.IsAuthenticated,)
    serializer_class = CustomSerializer

serializer:

class CustomSerializer(serializers.ModelSerializer):
    type_report = serializers.CharField(max_length=23)
    client_token = serializers.CharField(max_length=128)
    year_p_start = serializers.DecimalField(max_digits=10, decimal_places=2)
    month_p_start = serializers.DecimalField(max_digits=10, decimal_places=2)
    day_p_start = serializers.DecimalField(max_digits=10, decimal_places=2)
    year_p_end = serializers.DecimalField(max_digits=10, decimal_places=2)
    month_p_end = serializers.DecimalField(max_digits=10, decimal_places=2)
    day_p_end = serializers.DecimalField(max_digits=10, decimal_places=2)

    class Meta:
        model = # i dont have model for this.
        fields = ('type_report', 'client_token', 'year_p_start', 'month_p_start', 'day_p_start',
                  'year_p_end', 'month_p_end', 'day_p_end')

my qestion: what need typing in serializer class in model = ?

1 Answer 1

2

ModelSerializer used in case you need to perform some action on model. ModelSerializer automatically create fields that correspond to the Model fields. Since you don't have any model you can use normal Serializer class, in this case you dont need to specify model:

class CustomSerializer(serializers.Serializer):
    type_report = serializers.CharField(max_length=23)
    client_token = serializers.CharField(max_length=128)
    year_p_start = serializers.DecimalField(max_digits=10, decimal_places=2)
    month_p_start = serializers.DecimalField(max_digits=10, decimal_places=2)
    day_p_start = serializers.DecimalField(max_digits=10, decimal_places=2)
    year_p_end = serializers.DecimalField(max_digits=10, decimal_places=2)
    month_p_end = serializers.DecimalField(max_digits=10, decimal_places=2)
    day_p_end = serializers.DecimalField(max_digits=10, decimal_places=2)
Sign up to request clarification or add additional context in comments.

2 Comments

i have error Class CustomSerializer missing "Meta" attribute
@nesalexy are you sure you are using Serializer instead of ModelSerializer? Nevermind you can specify Meta with only fields attribute for Serializer class. See updates.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.