我创建了一个AssetsFilter类:
from django_filters import Filter
from django_filters import rest_framework as filters
from django_filters.fields import Lookup
from .models import Assets
class MyListFilter(Filter):
def filter(self, qs, value):
value_list = value.split(',')
return super(ListFilter, self).filter(qs, Lookup(value_list, 'in'))
class AssetsFilter(filters.FilterSet):
name = filters.CharFilter(lookup_expr='icontains', help_text=u'Filter by name')
criticality = MyListFilter(name='critical', help_text=u'Filter by_id')
class Meta:
model = Assets
fields = ['name', 'criticality ']
Run Code Online (Sandbox Code Playgroud)
现在我在我的Viewset中使用此过滤器,如下所示:
from .serializers import AssetSerializers
from .filters import AssetsFilter
class AssetViewSet(viewsets.ModelViewSet):
"""
This viewset automatically provides `list`, `create`, `retrieve`,
`update` and `destroy` …Run Code Online (Sandbox Code Playgroud) python django swagger django-rest-framework django-rest-swagger
有没有办法为后端和前端编写逻辑?
在我当前的流程中,我们使用Django rest-framework登录,现在我们需要在项目中集成OpenID connect SSO,因此指导我如何将OpenID connect SSO与Django-rest框架集成。
是否有GitHub示例?我在寻找示例代码。
models.py
class Thread(models.Model):
title = models.CharField(max_length=300)
answer_count = models.PositiveIntegerField(default=0)
added_at = models.DateTimeField(auto_now_add=True)
accepted_answer = models.ForeignKey('forum.Post', null=True, blank=True, related_name='+')
Run Code Online (Sandbox Code Playgroud)
我正在尝试将Accepted_answer ForeignKey更改为BooleanField
例如:
accepted_answer = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
并获得迁移错误“待处理的触发事件错误”。请看一下。
我想改变YAML文件value依据name:
例子:
spec:
containers:
- name: app1
image: imageurl.com
command: []
env:
- name: MONGO_HOST
value: localhost
Run Code Online (Sandbox Code Playgroud)
在这里您可以看到我们为 mongo 主机添加了一个环境。现在使用BASH我想MONGO_HOST value根据条件进行更改if - name: MONGO_HOST set value: 172.16.87.98
我正在尝试term使用elasticsearch_dslpython客户端应用过滤器弹性搜索索引数据,但不适用于字符串字段。
这是我的ES索引数据:
s = Search(using=es, index='idx_object', doc_type='ip').source(include=['id', 'status', 'username'])
Run Code Online (Sandbox Code Playgroud)
[{u'_score':1.0,u'_type':u'ip',u'_id':u'79',u'_source':{u'status':u'PUBLISHED',u'username': u'jackie @ example.com',u'id':79},u'_index':u'idx_object'},{u'_score':1.0,u'_type':u'ip',u'_id' :u'84',u'_source':{u'status':u'PUBLISHED',u'username':u'julia@example.com',u'id':84},u'_index':u 'idx_object'},{u'_score':1.0,u'_type':u'ip',u'_id':u'73',u'_source':{u'status':u'PUBLISHED',u '用户名':u'brad@example.com',u'id':73},u'_index':u'idx_object'},{u'_score':1.0,u'_type':u'ip',你_id':u'82',u'_source':{u'status':u'PUBLISHED',u'username':u'julia @ example.com',u'id':82},u'_index' :u'idx_object'},{u'_score':1.0,u'_type':u'ip',u'_id':u'65',u'_source':{u'status':u'PUBLISHED' ,u'用户名':u'george@example.com',u'id':65},u'_index':u'idx_object'},{u'_score':1.0,u'_type':u'ip ',u'_id':u'78',u'_source':{u'status':u'PUBLISHED',u'username':u'julia@example.com',u'id':78}, u'_index':u'idx_object'},{u'_score':1.0,u'_type':u'ip',u'_id':u'62',u'_source':{u'status':u'PUBLISHED',u'username':u'brad @ example.com',u'id':62},u'_index':u'idx_object'},{u'_score':1.0,u'_type' :u'ip',u'_id':u'96',u'_source':{u'status':u'PUBLISHED',u'username':u'brad@example.com',u'id' :96},u'_index':u'idx_object'},{u'_score':1.0,u'_type':u'ip',u'_id':u'70',u'_source':{u '状态':u'发布',u'用户名':u'brad@example.com',u'id':70},u'_index':u'idx_object'},{u'_score':1.0, u'_type':u'ip',u'_id':u'80',u'_source':{u'status':u'PUBLISHED',u'username':u'george @ example。com',u'id':80},u'_index':u'idx_object'}]
现在,如果我在id整数字段中应用了过滤器,则它可以正常工作。
s = Search(using=es, index='idx_object', doc_type='ip').source(include=['id', 'status', 'username']).filter("term", id=79)
Run Code Online (Sandbox Code Playgroud)
输出:
[{u'_score':0.0,u'_type':u'ip',u'_id':u'79',u'_source':{u'status':u'PUBLISHED',u'username': u'jackie @ example.com',u'id':79},u'_index':u'idx_object'}]
现在,如果我对用户名字符串字段应用过滤器,则无法正常工作:
s = Search(using=es, index='idx_object', doc_type='ip').source(include=['id', 'status', 'username']).filter("term", username='jackie@example.com')
Run Code Online (Sandbox Code Playgroud)
输出:
[]