示例字符串: "office administration in delhi"
我想用空格替换字符串.但是,当我这样做时,s.replace('in',"")行政管理也变得空白.
这只是一个样本.字符串和要替换的单词可能会有所不同.
有没有办法只替换完全匹配?
我正在将 django-rest-framework-mongoengine 用于个人项目。我希望能够在列表请求中发送额外的数据。为此,我编写了 2 个 mixin:
UserSearializerContextMixin:收集列表中所有实例的用户 ID 列表。
class UserSerializerContextMixin(object):
user_lookup_field = 'user_id'
user_fields_required = ['id','full_name','image','level']
_user_ids = []
def update_context(self,user_id):
if not self.context.get('user_ids'):
self.context['user_ids'] = [user_id]
else:
self.context['user_ids'].append(user_id)
def to_representation(self,instance):
self.update_context(getattr(instance,self.user_lookup_field))
return super(UserSerializerContextMixin,self).to_representation(instance)
Run Code Online (Sandbox Code Playgroud)
UserSerializerDataMixin:使用在 to_representation 部分准备的上下文覆盖数据属性。
class UserSerializerDataMixin(object):
@property
def data(self):
ret = super(UserSerializerDataMixin, self).data
// Override the data
return ReturnDict(ret, serializer=self)
Run Code Online (Sandbox Code Playgroud)
然后对于我的序列化程序,我做这样的事情:
class DFSerializer(UserSerializerContextMixin,UserSerializerDataMixin,DocumentSerializer):
//Fields and all
Run Code Online (Sandbox Code Playgroud)
但不知何故,代码只是没有输入覆盖的数据属性。我猜逻辑上应该通过扩展mixin来覆盖数据属性。但这不会发生在这里。
可能是什么原因以及如何解决?
我有一个serilizer.我已经覆盖to_representation了序列化器的方法.我想使用已调用序列化程序代码的视图名称.我试过以下::
self.context['view'].__class__
Run Code Online (Sandbox Code Playgroud)
这回报我以下::
<class 'search.api.v1.views.JobSearchList'>
Run Code Online (Sandbox Code Playgroud)
但是,我只想要视图类的名称.即JobSearchList
知道我怎么能这样做吗?
我有一个现有的字典列表如下:
FA = [{u'child': [{u'cdesc': u'Audit'},
{u'cdesc': u'Equity Research'},
{u'cdesc': u'Finance / Accounts / Tax'},
{u'cdesc': u'Investment Banking / M&A'}],
u'pdesc': u'Finance / Accounts / Investment Banking',
u'pid': 10007}]
Run Code Online (Sandbox Code Playgroud)
我想将它转换为这样的东西:
FA = {u'Audit':2,
u'Equity Research':2,
u'Finance / Accounts / Tax':2,
u'Investment Banking / M&A':2,
u'Finance / Accounts / Investment Banking':2}
Run Code Online (Sandbox Code Playgroud)
我可以使用嵌套循环轻松完成此操作,其代码如下所示.有没有办法使用词典理解来做到这一点?
a = dict()
for fa in FA:
a.update({slugify(fa['pdesc']):2})
for c in fa['child']:
a.update({slugify(c['cdesc']):2})
Run Code Online (Sandbox Code Playgroud)