可能是一个简单的问题,我只是错过了一些东西,但是我的想法很糟糕.
我有Django项目服务于几个具有截然不同sessions.py且完全不同ROOT_URLCONF的网站.一个站点处理用户注册,身份验证和配置文件设置,其他站点(在另一个域上)充当文件管理器等.站点共享相同的数据库,媒体和模板.所有站点都共享相同的用户群,实现了一种透明的单点登录/单点登录机制.它就像一个跨越多个领域的大型网站.
问题是,{% url %}我的模板中有很多标签,当模板在其他网站上使用时,它们不起作用.我想尽可能避免硬编码网址.
例如,在网站A(a.example.org)上我有一个
url('^users/$', 'example.accounts.list_users', name='list_users'),
Run Code Online (Sandbox Code Playgroud)
在A的URLconf中输入.然后,在一些global_menu.html模板中我有{% url list_users %},显然它完美地工作,导致" /users/".
现在,有站点B(b.example.org),与A共享许多内部.为了具有共同的外观,我想global_menu.html在站点B上使用相同的并且想要{% url list_users %}输出" http://a.example.org/users/".我能做到这一点的最好方法是什么?
目前,我正在global_menu.html为每个站点使用单独的,但这违反了DRY原则,并不是很方便.而且,是的,我正在使用Django的contrib.sites框架,为每个站点SITE_ID定义了不同的s settings.py,但实际上还没有在其他任何地方使用它.
更新:目前我正在考虑重新实现url标记或猴子修补reverse(),调用原始版本,并且异常在一些"外部URI列表"中执行额外查找.如果已经存在这样的事情 - 我会很高兴听到.
提前谢谢你的答案!
我正在制作一个需要反向搜索的应用程序.通过这个,我的意思是应用程序的用户将输入搜索参数并保存它们; 然后,当任何新对象进入系统时,如果它们与用户已保存的现有搜索参数匹配,则将发送通知等.
我很难找到解决这类问题的方法.
我正在使用Django并考虑构建搜索并使用Q对象对它们进行挖掘,如下所示:http://www.djangozen.com/blog/the-power-of-q
我看到它的方式,当一个新对象进入数据库时,我将不得不从数据库中加载每个保存的查询,并以某种方式针对这一个新对象运行它,以查看它是否与该搜索查询匹配...看起来不太理想 - 以前有人解决过这样的问题吗?
所以,我有一个包含近100,000个(键,值)对的字典,而且大多数键映射到相同的值.例如,想象一下这样的事情:
mydict = {'a': 1, 'c': 2, 'b': 1, 'e': 2, 'd': 3, 'h': 1, 'j': 3}
Run Code Online (Sandbox Code Playgroud)
我想要做的是反转字典,以便mydict中的每个值都将成为reverse_dict的一个键,并将映射到mydict上用于映射到该值的所有mydict.keys的列表.所以基于上面的例子,我会得到:
reversed_dict = {1: ['a', 'b', 'h'], 2:['e', 'c'] , 3:['d', 'j']}
Run Code Online (Sandbox Code Playgroud)
我想出了一个非常昂贵的解决方案,我真的希望听到任何比我更有效的想法.
我昂贵的解决方案
reversed_dict = {}
for value in mydict.values():
reversed_dict[value] = []
for key in mydict.keys():
if mydict[key] == value:
if key not in reversed_dict[value]: reversed_dict[value].append(key)
Output >> reversed_dict = {1: ['a', 'b', 'h'], 2: ['c', 'e'], 3: ['d', 'j']}
Run Code Online (Sandbox Code Playgroud)
我真的很感激听到任何想法比我的更好更有效.谢谢!
假设我有以下数组:
views = [
{ :user_id => 1, :viewed_at => '2012-06-29 17:03:28 -0400' },
{ :user_id => 1, :viewed_at => '2012-06-29 17:04:28 -0400' },
{ :user_id => 2, :viewed_at => '2012-06-29 17:05:28 -0400' },
{ :user_id => 3, :viewed_at => '2012-06-29 17:06:28 -0400' },
{ :user_id => 1, :viewed_at => '2012-06-29 17:07:28 -0400' },
{ :user_id => 1, :viewed_at => '2012-06-29 17:08:28 -0400' },
{ :user_id => 3, :viewed_at => '2012-06-29 17:09:28 -0400' },
{ :user_id => 3, :viewed_at => …Run Code Online (Sandbox Code Playgroud) 例如:
我的字符串是:123456789 nn nn oo nn nn mlm nn203.
我的目标是:nn.
然后,我匹配从结尾到开头的字符串,并返回第一个匹配结果及其位置.
在此检查中,结果nn从[ - 3]中的[-5]结束开始.
我写了简单的funcitonto做这个过程,但如何使用正则表达式来完成这项工作?
user=> (rseq [:a :b])
(:b :a)
user=> (rseq (rseq [:a :b]))
ClassCastException clojure.lang.APersistentVector$RSeq cannot be cast to
clojure.lang.Reversible clojure.core/rseq (core.clj:1532)
Run Code Online (Sandbox Code Playgroud)
为什么不能rseq接受之前通话的结果rseq?
我在docstring中读到参数必须是(实际上,"可以是")一个向量或有序映射,而上面显示它不能是一个RSeq,所以我已经知道了.我想知道的是:有这个限制的充分理由吗?这只是一种疏忽,还是这种限制提供了一些重要的好处?
此外,除了从不调用之外,还有一个方便的解决方法rseq吗?很难知道,当你RSeq从一个函数返回一个函数时,其他某个函数是否会调用rseq它.
我问,因为它是令人沮丧的看到我的代码抛出异常这样令人惊讶的原因小号.如果我知道为什么这是有道理的,我可能不太可能犯这种和类似的错误.
当我使用reverse()or时sort(),如果我想稍后使用它,我总是需要将return语句保存到变量中.
@array=qw(Nick Susan Chet Dolly Bill);
@array = reverse(@array);
Run Code Online (Sandbox Code Playgroud)
为什么这与使用不同push(),pop()或者shift()您可以只调用该函数并且数组将被更改?
@array=qw(Nick Susan Chet Dolly Bill);
push(@array, "Bruce");
Run Code Online (Sandbox Code Playgroud)
那么这些"功能"究竟有什么区别呢?
我是新手,我正在尝试设计热图。这是我的代码:
ggplot(gd, aes(Qcountry, Q6_1_Q6d), order = TRUE) +
geom_tile(aes(fill = prob), colour = "white") +
theme_minimal() +
labs( y = "Main reason for mobility", x = "Country") +
theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.3)) +
scale_fill_gradient(name = "(%)")
Run Code Online (Sandbox Code Playgroud)
这产生了一个完美的图表,我的问题是低水平是深蓝色,而较高的值是浅蓝色,这不直观。最常用的方法是使用rev()。但就我而言,我不知道该怎么做。因此,是否可以反转此默认比例?
这是传说
另一个问题是,有没有一种方法可以只用一种颜色创建比例渐变。我的意思是,scale_fill_gradient/scale_fill_gradientn 需要设置低色和高色(low = "", high = ""),我想将蓝色改为红色。
非常感谢你的支持。
目前的设置如下:
stream {
server {
listen 9987 udp;
server_name subdomain.EXAMPLE.com; # this line is resulting in an error
proxy_pass localhost:9987;
proxy_timeout 1s;
proxy_responses 1;
error_log logs/dns.log;
}
}
Run Code Online (Sandbox Code Playgroud)
server_name subdomain.EXAMPLE.com;
这可能吗?
$nginx -t
$nginx: [emerg] "server_name" directive is not allowed here in /etc/nginx/nginx.conf:15
Run Code Online (Sandbox Code Playgroud)
没有server_name工作正常,但我想尽可能使用子域.(我使用带有--with-stream的构建,这不是我的问题.)
我想要一个带字符串(不是向量)并反转该字符串中的单词的函数.
例如,
rev_sentence("hi i'm five")
## [1] "five i'm hi"
Run Code Online (Sandbox Code Playgroud)
我有一个函数可以反转单个字符,但不能反转一个基本上是句子的字符串.