我想在我的模板中显示current_user的图片.当我使用django-allauth时,如何访问用户的facebook id?
我想在app引擎上构建一个REST Web服务.目前我有这个:
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
class UsersHandler(webapp.RequestHandler):
def get(self, name):
self.response.out.write('Hello '+ name+'!')
def main():
util.run_wsgi_app(application)
#Map url like /rest/users/johnsmith
application = webapp.WSGIApplication([(r'/rest/users/(.*)',UsersHandler)]
debug=True)
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
我想在访问路径/休息/用户时检索所有用户.我想象我可以通过构建另一个处理程序来做到这一点,但我想知道是否可以在此处理程序中执行此操作.
我正在使用mongoengine,我有以下情况,
我的模特:
class Item(Document):
...
tags = ListField(StringField(max_length=30))
Run Code Online (Sandbox Code Playgroud)
查询:
filters = {
'tags__contains': query
}
tags_with_counter = Item.objects.filter(**filters).item_frequencies('tags')
Run Code Online (Sandbox Code Playgroud)
这将返回包含标记名称和频率的元组列表.我想要做的只是获取包含查询的标签及其各自的频率.我怎样才能做到这一点?
我正在尝试优化我的代码,我遇到了一个我不太明白的问题.在我的网络应用程序的每个页面上,都会有一个通知列表,就像Facebook新的自动收报机一样.因此,在每个请求中,我在开始运行此代码:
notification_query = db.Query(Ticker, keys_only=True)\
.filter('friends =',self.current_user.key().name())
self._notifications_future = notification_query.run()
Run Code Online (Sandbox Code Playgroud)
然后,在我找到一个好位置的地方,我称之为中间函数:
notification_keys = [future.parent() for future in self._notifications_future]
self._notifications = db.get_async(notification_keys)
Run Code Online (Sandbox Code Playgroud)
最后,我最后将它们全部取出:
context.update({'notifications': self._notifications.get_result() })
Run Code Online (Sandbox Code Playgroud)
除此之外,每件事都很有效:如果我在请求函数的末尾调用中间函数,我会得到:
如果我把它称为优化点,我得到这个:
通过进行"优化",您可以看到API使用率翻了一番.这里发生了什么?
电话号码2是两种情况下的第一个片段.哑点中的电话号码12是第二个片段,智能点中的电话号码12是第二个片段.这最后一个开关,与问题无关,我已经测试过了.
pd:google是否会向我收取查询"空闲"的时间?
UPDATE
问题似乎只是在dev_server中,当我在appspot上尝试相同的例子(智能版)时,我得到了这个:
这里的一切都按预期工作,用run()或get_async()调用的东西不会阻止其他东西.正如我所说,问题只出在dev_server中.仍然很高兴看到这个功能在localhost上运行,以便进行更有效的分析.
我想做以下事情:
让我说我有:
query_terms = ["A", "B"]
Run Code Online (Sandbox Code Playgroud)
需要的是以下查询:
House.objects.filter(
Q(name__icontains="A") | Q(building__name__icontains="A",
Q(name__icontains="B") | Q(building__name__icontains="B"
)
Run Code Online (Sandbox Code Playgroud)
我不知道如何将这个"OR"语句与带有动态query_terms列表的"AND"一起加入
我真的不知道还能做什么但是来到这里问你们.继承人的情况:
models.py
class Vote(models.Model):
""" Generic vote model """
user = models.ForeignKey(User)
question = models.ForeignKey(Question)
created = models.DateTimeField(auto_now_add=True)
objects = models.Manager()
cache = CacheVoteManager()
class Meta:
abstract = True
def __unicode__(self):
return '%s : %s' % (self.user.username, self.question.question)
class OptionVote(Vote):
option = models.ForeignKey(Option)
Run Code Online (Sandbox Code Playgroud)
forms.py
class OptionChoiceField(forms.ModelChoiceField):
""" Custom model choice field for options """
widget = forms.RadioSelect(attrs={'class': 'c-opt'})
def label_from_instance(self, obj):
return mark_safe(
'<span class="c-opt-img">%s</span><span class="c-opt-name">%s</span>'
% (obj.media_content.draw_create_widget() , obj.name))
class OptionVoteForm(ModelForm):
""" Form to vote in a option-based question …
Run Code Online (Sandbox Code Playgroud)