python - 在 Django 中保存序列化器

标签 python django orm model

当我尝试在 View 的 post() 中保存模型对象(此处名称为“RSS”)时,它没有被保存,如何从 View 的 post() 中保存模型实例“rss” ?

在序列化器类中:

class RSSSerializer(serializers.ModelSerializer):
    class Meta:
        model = RSS
        fields = ('feed_url', 'website_url', 'description', 'title')

    def create(self, validated_data):
        rss = RSS(**validated_data)
        rss.created_at =  datetime.now()
        rss.last_scan_time = '2001-01-01 00:00:00'
        rss.id = None
        return rss

在 View 类中:

class RSSList(APIView):
        def post(self, request):
                serializer = RSSSerializer(data=request.data)
                if serializer.is_valid():
                        print("saving rss post")
                        serializer.save()
                        return Response(serializer.data, status=status.HTTP_201_CREATED)
                return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

最佳答案

您当前的 create 方法会实例化一个新的 RSS 对象,但不会保存它。试试这个:

def create(self, validated_data):
    rss = RSS.objects.create(**validated_data)
    rss.created_at = datetime.now()
    ...
    return rss.save()

更多信息:Django rest framework: override create() in ModelSerializer passing an extra parameter

http://www.django-rest-framework.org/api-guide/serializers/#saving-instances

If your object instances correspond to Django models you'll also want to ensure that these methods save the object to the database.

关于python - 在 Django 中保存序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47250146/

相关文章:

python - 在生产中使用 Django-Q

python - 按日期排序所有信息 DJANGO

Django - Allauth 默认电子邮件地址错误

php - Doctrine 多级继承映射

php - Yii 向 CDbCriteria 添加一个选择

数据库中的Django默认值

Python:修改属性值

python - pandas 中的 Groupby 和计算比率

python - 如何将日期设置为该月的第一个日期?

python - 合并多个 DataFrame