Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django models 函数不向模型添加数据(通过序列化程序)_Django Models_Django Rest Framework - Fatal编程技术网

Django models 函数不向模型添加数据(通过序列化程序)

Django models 函数不向模型添加数据(通过序列化程序),django-models,django-rest-framework,Django Models,Django Rest Framework,这是我编写的函数,它检查“Url1”模型中名为“url”的字段,如果为空则继续 def mozs(): getids = Url1.objects.values_list('id', flat=True) for id in getids: if Url1.objects.get(id=id).pda == None: authorities= {"pda": 58.26193857945012, "upa": 36.5673377937

这是我编写的函数,它检查“Url1”模型中名为“url”的字段,如果为空则继续

def mozs():
    getids = Url1.objects.values_list('id', flat=True)
    for id in getids:
        if Url1.objects.get(id=id).pda == None:

            authorities= {"pda": 58.26193857945012, "upa": 36.56733779379807}    
            authorities['keyword'] = id

            serializer = MozSerializer(data=authorities)

            if serializer.is_valid():
                serializer.save()  

            print "For %d we added %s" % (id, authorities)
以下是输出:

对于37,我们添加了{'keyword':37,'pda':58.26193857945012,'upa':36.56733779379807}

但这并没有增加它。下面是序列化程序:

class MozSerializer(serializers.Serializer):    
    keyword = serializers.PrimaryKeyRelatedField(queryset=KW.objects.all())
    pda = serializers.FloatField()
    upa = serializers.FloatField() 


    def save(self):
        keyword = self.validated_data['keyword']
        pda = self.validated_data['pda']
        upa = self.validated_data['upa']

        Url1.objects.update(pda=pda, upa=upa)

我认为您可以通过以下查询完成所有这些:Url1.objects.filterpda_uuuisnull=True.updatepda=58.26193857945012,upa=36.56733779379807这完全跳过了序列化程序,对吗?是的,那么就不需要序列化程序和迭代了。您只需在视图中添加这一行,即可完成所有这些操作。