繁体   English   中英

在 Django 中创建没有模型的帖子

[英]Create post without model in django

对不起我的英语不好。 我是 Django 的新手,我想创建自定义帖子。 我没有为此建模,我不需要创建它。 我无法理解如何在 Django 中创建正常的帖子请求。 下面我尝试创建它

看法:

class CreateCustopPost(generics.GenericAPIView):

    permission_classes = (permissions.IsAuthenticated,)
    serializer_class = CustomSerializer

序列化程序:

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')

我的问题:需要在model =的序列化器类中输入什么?

ModelSerializer在您需要对模型执行某些操作时使用。 ModelSerializer 自动创建与模型字段对应的字段。 由于您没有任何模型,您可以使用普通的Serializer类,在这种情况下您不需要指定模型:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM