我有一个应用程序,允许您通过3个字段过滤数据.我正在尝试在我的urls.py中编写一个RegEx,它可以捕获多个组合,而不必将每个可能的组合写出它自己的URL.
这是我的urls.py:
#urls.py
urlpatterns = patterns('',
# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)),
(r'(?P<key>\w*?)=(?P<value>\w*?)&|$', views.scriptFilter),
Run Code Online (Sandbox Code Playgroud)
我在pythonregex.com上测试了上面的RegEx,它似乎捕获了尽可能多的键/值对.但是,当我在我的应用程序中测试它时,Django只返回基于第一对的查询集,并忽略其他对.
例如,如果我输入: http:// MYSITE/feature = 1&session = 1&
Django仅返回基于feature = 1的数据,并忽略session = 1.
这是我的views.py:
#views.py
def scriptFilter(request, key, value):
if key == 'session':
sessionID = value
qs = models.Script.objects.filter(session=sessionID)
elif key == 'product':
productID = value
qs = models.Script.objects.filter(product=productID)
elif key == 'feature':
featureID = value
scriptFeature = models.Feature.objects.get(pk=featureID)
qs = models.Script.objects.filter(feature=scriptFeature)
else:
qs = models.Script.objects.all()
caseTotal = qs.aggregate(Sum('caseCount'))
scriptTotal = …Run Code Online (Sandbox Code Playgroud) 我正在学习SQL Alchemy,并使用ORM提取记录。
但是,有些功能似乎是另一种引入记录方式所独有的功能,例如sqlalchemy.and_',sqlalchemy.or_'等。
我想知道如何使用ORM,但仍使用一些“ OR”子句,以便执行以下操作:给定ORM对象,Person选择姓氏为“ Smith”或“ Lee”或“ Bishop”的所有记录,但排除记录年龄小于18岁
仅当我不使用ORM时才有可能吗?
有没有办法找出当CSS值设置为"auto"或类似时浏览器使用的实际值?我正在查看检查器中元素的计算CSS值,但它仍然显示"auto",我想确定确切的值.
更新:看起来大多数属性会自动计算,但有些则不会.以下是在查看计算面板时仍显示为"auto" 的属性示例:
不知道为什么.
如果有人想知道,我甚至试图解决这个问题的原因是因为我目前正在使用旧版本的Bootstrap(v2.1.1)维护一个网站,它将.modal.fade.in的顶部设置为"auto"在浏览器中,宽度<768px.至少对我的浏览器来说,这会导致模态从视图中消失.所以我很自然地想知道模态的位置,并希望我能看到Chrome设定的实际值.
看起来(v2.2.x)中的一个变化正在改变顶部:自动到顶部:20px可能会解决问题.
我有这样的功能:
def foo(bar):
...
Run Code Online (Sandbox Code Playgroud)
现在bar既可以是Django记录,也可以是指向记录的slug.我需要这种灵活性,这样我就可以在手边有实际记录时调用此函数,或者从一个更通用的函数调用它,该函数只有一个字符串可用作为字符串(从数据库中提取).
我意识到我可以这样做:
def foo(bar):
try:
bar.pk
except AttributeError:
bar = Bar.objects.get(slug=bar)
...
Run Code Online (Sandbox Code Playgroud)
但是,这似乎并没有优雅可言.
如果我可以,我想避免使用isinstance.
我很确定solr可以设置为在搜索期间识别同义词.我想知道是否可以用昵称做同样的事情 - 所以例如搜索"Robert"会将"Bob"记录在其中.
每隔一段时间,无论是在显示代码中还是在组装字符串中,我都会制作一个列表并需要弄清楚如何在该列表中插入逗号.
这就是我通常这样做的方式:
<cfset hide_comma=true>
<cfloop ... some kind of loop ...>
<cfif hide_comma><cfset hide_comma=false><cfelse>,</cfif>
.... rest of code here ...
</cfloop>
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更清洁的方法.我意识到一个选项将类似于以下内容:
<cfset output_as_array = []>
<cfloop ... some kind of loop ...>
<cfset loop_output = "">
... rest of code here, but append all output to loop output instead ...
<cfset ArrayAppend(output_as_array, trim(loop_output))>
</cfloop>
<cfoutput>#ArrayToList(output_as_array, ", ")#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
但这似乎并不是更清楚.
相比之下,在Django中,每个循环都有一个内置计数器,所以我可以编写如下内容:
{% for ... some kind of loop ... %}
{% if not forloop.first %},{% endif %}
... rest of code …Run Code Online (Sandbox Code Playgroud) 我不小心进入了
git checkout -b develop
Run Code Online (Sandbox Code Playgroud)
代替
git checkout develop
Run Code Online (Sandbox Code Playgroud)
尽管开发分支已经存在,但它说它已经创建了。
这是否影响了分支中的代码develop?我找不到任何关于此的明确文档。
django ×2
coldfusion ×1
css ×1
django-urls ×1
django-views ×1
duck-typing ×1
for-loop ×1
git ×1
loops ×1
names ×1
orm ×1
regex ×1
solr ×1
sqlalchemy ×1
synonym ×1