Django models 函数不向模型添加数据(通过序列化程序)
这是我编写的函数,它检查“Url1”模型中名为“url”的字段,如果为空则继续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
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这完全跳过了序列化程序,对吗?是的,那么就不需要序列化程序和迭代了。您只需在视图中添加这一行,即可完成所有这些操作。