利用django中redisco库,修改redis模型导致数据无法保存以及部分其他问题

来源:互联网 发布:阿里云储存空间不足 编辑:程序博客网 时间:2024/05/18 01:20

本来数据模型是使用django.db库写的:

class AdConversionParaRelation(models.Model):    """    转化参数    """    ad = models.ForeignKey(Ad, verbose_name="所属创意")    conversionPara = models.ForeignKey(ConversionPara, verbose_name="自定义属性")    class Meta:        app_label = 'campaigns'
如上图,在网页中每次点击添加属性中的值都会造成读写数据库导致后台处理缓慢。所以改为了redis模型。这里采用了redisco库。
class AdConversionParaRelation(models.Model):    """    转化参数    """    ad_id = models.Attribute(required=True)    conversionPara = models.Attribute(required=True)    class Meta:        app_label = 'campaigns'
模型修改后,修改业务逻辑。
for x in conversionpara_list:    AdConversionParaRelation.objects.create(ad_id=ad_id, conversionPara=x)
经过测试发现并没有和其他orm一样执行后就将数据保存进去。查了相关资料发现是还需要额外的save一下。
修改为
AdConversionParaRelation.objects.create(ad_id=ad_id, conversionPara=x).save()
经过测试发现有些数据鸣鸣通过本命令执行了还是写不进去。
疑惑了半天发现redis中的参数应该将其字符串化,修改为
for x in conversionpara_list:    AdConversionParaRelation.objects.create(ad_id=ad_id, conversionPara=str(x)).save()
这个时候就可以保存相关数据了。

0 0
原创粉丝点击