小编Har*_*wal的帖子

如何使用新主键克隆sqlalchemy数据库对象

我想克隆一个sqlalchemy对象:

我试过了

product_obj = products.all()[0] #here products is service name

product_obj.product_uid = 'soemthing' #here product_uid is the pk of product model

products.save(product_obj)
Run Code Online (Sandbox Code Playgroud)

它只是更新old_object

这是products.save函数的代码

class Service(object):

        __model__ = None

       def save(self, model):
            self._isinstance(model)
            db.session.add(model)
            db.session.commit()
            return model
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy python-2.7 flask-sqlalchemy

22
推荐指数
4
解决办法
1万
查看次数

验证Django Rest Framework中的query_params

我只想在给出query_params的情况下返回model_info,否则它应该给出一些错误消息.

我试过下面的代码,但是当查询参数没有传递名称时,它给了我keyerror.

from rest_framework.validators import ValidationError

class ModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = ModelName
        fields = ('name', 'abbreviation')

    def validate_name(self, value):
        if value:
            return value
        else:
            raise ValidationError('Enter name')



class ModelNameListList(generics.ListCreateAPIView):
    renderer_classes = (JSONRenderer, )
    serializer_class = ModelSerializer

    def get_queryset(self):
        queryset = ModelName.objects.all()
        name = self.request.query_params['name']
        queryset = queryset.filter(Q(name__icontains=name) | Q(abbreviation__icontains=name)).all()
        return queryset
Run Code Online (Sandbox Code Playgroud)

我不能使用get方法,因为我也使用分页,如果我将使用get方法,它将返回所有结果.

当我在get_queryset中使用下面的代码时,我得到的响应对象没有长度

   def get_queryset(self):
        queryset = ModelName.objects.all()
        name = self.request.query_params.get('name', None)
        if name:
            queryset = queryset.filter(Q(name__icontains=name) | Q(abbreviation__icontains=name)).all()
        else:
            content = {'errors': 'name is missing'}
            return Response(content)
        return …
Run Code Online (Sandbox Code Playgroud)

python django rest django-rest-framework

9
推荐指数
1
解决办法
5761
查看次数