我想用来自的变量重定向url模式urls.py
.
我引用 其他stackoverflow解决方案,但我不知道什么时候url有一个变量,如下面的代码.
from django.conf.urls import patterns, url
from django.views.generic import RedirectView
urlpatterns = patterns(
url(
r'^permalink/(?P<id>\d+)/foo/$',
RedirectView.as_view(url='/permalink/(?P<id>\d+)/')
),
)
Run Code Online (Sandbox Code Playgroud)
使用此代码,django将重定向/permalink/1/foo/
到/permalink/(?P<id>\d+)/
,而不是/permalink/1/
.
有没有使用的views.py
解决方案?
当然我知道使用控制器的解决方案,但我想知道使用url模式是否有任何更简单的解决方案.
我正在使用 django 1.5.4 和 django-redis 3.7.1
当我检索它时,我想扩展缓存的 ttl(time-to-live)。
这是示例代码
from django.core.cache import cache
foo = cache.get("foo)
if not foo:
cache.set("foo", 1, timeout=100)
else:
// Extend Cache's Time-To-Live something like it
cache.ttl("foo") = 200
Run Code Online (Sandbox Code Playgroud)
我试图在django-redis-docs搜索这个选项,但我找不到它。
但是,我注意到在 redis 本机命令中可以使用指定现有缓存的生存时间值,例如“ Expire foo 100
”
我知道cache.set
再次使用会产生相同的效果,但我想使用具有生存时间属性的更简单的方法。
这是django中的示例代码.
[情况1]
views.py
from sampleapp.models import SampleModel
from django.core.cache import cache
def get_filtered_data():
result = cache.get("result")
# make cache if result not exists
if not result:
result = SampleModel.objects.filter(field_A="foo")
cache.set("result", result)
return render_to_response('template.html', locals(), context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
template.html
{% for case in result %}
<p>{{ case.field_A}}</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,缓存生成后没有生成查询.我用django_debug_toolbar检查了它.
[案例2]
views.py - 添加了一行result = result.order_by('?')
from sampleapp.models import SampleModel
from django.core.cache import cache
def get_filtered_data():
result = cache.get("result")
# make cache if result not exists
if …
Run Code Online (Sandbox Code Playgroud) 我试图在IE 10中使用OTF,但它无法正常工作.我确认TTF在IE 10中运行良好.
我已经尝试通过几种服务(例如fontssquirrel)将OTF转换为EOT但是失败了.也许是因为我的字体不适合英语.
顺便说一句,我发现文章说" (1)IE10为Webfonts解锁CSS OpenType功能 ".它不表示"IE从版本10开始支持OTF吗?".
但是,当我用谷歌搜索时,很多人说"(2)所有版本的IE不支持OTF ".
我无法理解这两句(1)和(2)之间的区别.
如何从另一个ini文件中解析变量?
在下面的例子中,我想解析var_a
从original_configuration.ini
,并用它在new_configuration.ini
original_configuration.ini:
[Section A]
var_a = "foo"
var_b = "bar"
Run Code Online (Sandbox Code Playgroud)
new_configuration.ini:
[Section B]
var_c = "lorem"
var_d = {value of var_a in original_configuration.ini}
Run Code Online (Sandbox Code Playgroud) 条件
email
email
用Javascript 获取用户工作正常access token
的用户目标
问题
name
和id
用户,但email
不包括email
聚在一起码
import facebook
graph = facebook.GraphAPI(access_token='CAA...DZD')
graph.get_object(id='me')
# result : {u'name': u'Username', u'id': u'123456789'}
graph.get_object(id='me?fields=email,id,name')
# Error : facebook.GraphAPIError: An active access token must be used to query information about the current user
Run Code Online (Sandbox Code Playgroud) 从另一个stackoverflow回答,我试图限制芹菜的工人数量
在我终止所有芹菜工人后,我用新的配置重新启动了芹菜.
CELERYD_CONCURRENCY = 1
(在Django的settings.py中)
然后我输入以下命令来检查有多少芹菜工人正在工作.
ps auxww | grep 'celery worker' | grep -v grep | awk '{print $2}'
它返回两个PID,如24803,24817.
然后我改变配置CELERYD_CONCURRENCY = 2
并重新启动芹菜.
相同的命令返回三个PID,如24944,24958,24959.(如您所见,最后两个PID是顺序的)
这意味着按照我的预期增加了工人数量.
但是,我不知道为什么它会返回两个PID,即使只有一个芹菜工人正在工作?
是否有一些辅助过程来帮助工人?
我有一个与Catalog模型具有OnetoOne关系的Article模型.
我当前的功能有Article模型,在post_save上创建一个具有相同名称的Catalog模型.我想做另一个功能,其中Article FK从null变为更新到现在可用的同名Catalog实例.
这是我到目前为止:
class Catalog(models.Model):
name = models.CharField(max_length=100)
price = models.IntegerField()
def __unicode__(self):
return self.name
class Article(models.Model):
catalog = models.OneToOneField(Catalog, related_name='article_products', blank=True, null=True)
title = models.CharField(max_length=200)
def __unicode__(self):
return unicode(self.title)
@receiver(post_save, sender=Article)
def create_catalog(sender, **kwargs):
if kwargs.get('created', False):
Catalog.objects.get_or_create(name=kwargs.get('instance'), price='10')
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常.创建Article模型实例后,它将创建同名的Catalog实例.我现在想要将新创建的文章与FK关系更新为新创建的Catalog实例.我认为我的逻辑很接近,但我无法让它发挥作用.
@receiver(post_save, sender=Catalog)
def attach_catalog(sender, **kwargs):
if kwargs.get('created', False):
Article.objects.latest('id').update(catalog=kwargs.get('instance'))
Run Code Online (Sandbox Code Playgroud) 我正在使用JSONP将数据从发送otherdomain.com
到mydomain.com
但是,当我尝试在django控制器(views.py
)中解析JSONP数据时,我遇到了错误。
这是我的代码。
mydomain.com
客户端页面中的Javascript
jsonData = {
'foo': 'bar',
}
$.ajax({
url: 'http://otherdomain.com/end_point/',
type: 'GET',
contentType: 'application/json; charset=utf-8',
data: jsonData,
dataType : 'jsonp',
jsonp : 'callback'
});
Run Code Online (Sandbox Code Playgroud)
中的Django控制器(views.py
)mydomain.com
from django.http import JsonResponse
import json
def decode_jsonp(request):
if 'callback' in request.GET:
json_object = json.loads(request.body) # Raise error
json_object = json.dumps(request.body) # Do not raise error but returns nothing
json_object = json.loads(json.dumps(request.body)) # Raise error
foo = …
Run Code Online (Sandbox Code Playgroud) 我知道如何使用自定义按钮作为Facebook登录.
现在我想将onlogin
事件绑定到自定义按钮,但我不知道该怎么做.
原始代码
<fb:login-button scope="public_profile,email" onlogin="afterLogin();">
</fb:login-button>
<script>
/* Assume that Facebook SDK loaded asyncronously and initilized */
function afterLogin() {
// Do stuff
}
</script>
Run Code Online (Sandbox Code Playgroud)
我的代码
<button id="cusomized-button" onclick="fbLogin();" onlogin="afterLogin();">
Customized button
</button>
<script>
/* Assume that Facebook SDK loaded asynchronously and initialized */
// Show facebook login modal
function fbLogin() {
FB.login(function() {}, {
scope: 'email,public_profile'
});
};
function afterLogin() {
// Do stuff
}
</script>
Run Code Online (Sandbox Code Playgroud)