小编Ken*_*ows的帖子

Django:如何在Q()语句中使用字符串作为关键字?

我正在为某个模型编写一个简单的搜索表单.让我们称之为模型Orchard,并给它的属性apples,orangespears,只是为了演示的目的.

因此,表单不需要填写所有字段.所以,你可以搜索applesoranges而不是梨.我需要像这样过滤:

Orchard.objects.filter(apples=request.GET.get('apples'), oranges=request.GET.get('oranges'), pears=request.GET.get('pears'))
Run Code Online (Sandbox Code Playgroud)

但如果pears是空的,则不会返回任何结果.

我的第一个想法是使用Q对象,如下所示:

from django.db.models import Q

options = {}
options['apples'] = request.GET.get('apples')
options['oranges'] = request.GET.get('oranges')
options['pears'] = request.GET.get('pears')

queries = None

for key in options:
    if options[key] != u'':
        if queries:
            queries &= Q(key=options[key]) # <=== problem here
        else:
            queries = Q(key=options[key])  # <=== same problem here

results = Orchard.objects.filter(queries)
Run Code Online (Sandbox Code Playgroud)

问题出现在那些标记的行中.我显然不能只使用"key"作为属性关键字,因为它不需要字符串,它基本上需要一个变量.

那么......我该如何解决这个问题呢?

除非有一个已知的解决方案,不涉及此问题Q.这也会有所帮助.

python django django-queryset

8
推荐指数
1
解决办法
5374
查看次数

从Python 2.x中调用Python 3.x程序的最佳方法是什么?

我正在写一个Django Web应用程序.截至目前,Django不支持Python 3.出于我的Web应用程序的目的,并且没有深入细节,我基本上需要使用一些仅支持Python 3的库.只需说经过深入研究后没有找到2.x替代方案.

所以我的问题是:我该怎么做呢?

我的服务器上安装了Python 2和3,我编写了Python 3代码并等待调用.我正在考虑简单地使用该subprocess模块,从命令行有效地调用Python 3,但问题是,这是最好的方法还是我可以在这里使用最佳实践?使用subprocess对我来说似乎非常hackish.不要误会我的意思,我很讨厌hackish,我只是想确保没有其他我应该做的事情.

python subprocess python-3.x

7
推荐指数
1
解决办法
204
查看次数

我可以在HTML <button />元素上处理右键单击事件吗?

我已经在SO和其他地方看到了很多关于右键单击事件以及如何使用JavaScript捕获和处理它们的问题和答案,通常使用浏览器生成.buttonevent对象的属性.

但是,我没有找到的一件事,可能是因为它是一个非常奇怪的请求,是如何捕获和处理HTML <button />元素的正确点击.浏览器不会以与其他元素相同的方式处理按钮.最重要的是,似乎右键单击按钮不起任何作用.没有上下文菜单,据我所知,没有事件.

我错了吗?我希望如此,因为它会让我的生活更轻松.如果没有,我可以模拟一个带有div和一些CSS的按钮,但我宁愿避免它.有什么想法吗?

(PS:这是一个愚蠢的项目,所以不要担心我试图在任何客户或任何东西面前放置一个按钮右键单击界面.我很清楚界面可能会有多可怕是.)

html javascript

7
推荐指数
2
解决办法
3万
查看次数

使用string作为变量名

我有什么方法可以使用字符串来调用类的方法吗?这是一个有希望更好地解释的例子(使用我认为的方式):

class helloworld():
    def world(self):
        print "Hello World!"

str = "world"
hello = helloworld()

hello.`str`()
Run Code Online (Sandbox Code Playgroud)

哪个会输出Hello World!.

提前致谢.

python

6
推荐指数
1
解决办法
5163
查看次数

这些g ++"多重定义"错误是什么?

我正处于项目的早期阶段(阅读:刚刚开始),我正在设置我的初始makefile.这非常简单.这是文件的完整内容:

all: main.o resource.o
    g++ -o output.exe main.o resource.o

main.o: main.cpp main.h resource.h
    g++ -mwindows -o main.o main.cpp

resource.o: resource.rc
    windres resource.rc resource.o

clean:
    rm *.o 
Run Code Online (Sandbox Code Playgroud)

在这一点上,我认为重要的是要提到我正在使用Windows,所以我在Powershell中使用MinGW g ++ 4.5.2或者使用Cygwin和g ++ 3.4.4(我已经尝试过两者;同样的错误).

如果不打印上面列出的所有文件的内容,就可以说main.h包含对windows.h和resource.h的引用,main.cpp包含对main.h的引用和一些函数,最重要的是int WINAPI WinMain(...)函数和LRESULT CALLBACK WndProc(...)函数,resource.rc包含带有文件菜单和虚拟第二个菜单的简单菜单栏的资源定义语句以及对resource.h的引用和resource.h只包含resource.rc中使用的ID的#define语句.

现在,我可以分别编译resource.rc和main.h,并获得这两个不错的.o文件.但是,当我尝试链接它们并生成output.exe时,我得到以下可怕的错误列表,其中没有一个我真正理解:

main.o:main.cpp:(.text+0x0): multiple definition of `mainCRTStartup'
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../crt2.o:crt1.c:(.text+0x160): first defined here
main.o:main.cpp:(.text+0x0): multiple definition of `WinMainCRTStartup'
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../crt2.o:crt1.c:(.text+0x140): first defined here
collect2: ld returned 1 exit status
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

以上内容在Powershell中生成.Cygwin提供了一个非常相似的错误列表,仍然以"多重定义"语句为中心.多个定义似乎源于C:/mingw/lib/crt2.o,可能还有另一个名为crt1.c的文件,这似乎更有用,因为很明显C比.o文件更易于人类阅读,但是我无法在C:\ MinGW文件夹中的任何位置找到任何带有该标题的内容.

任何方向都会有所帮助,因为此刻我很丢失.

编辑:main.cpp中唯一的#include语句:

#include "main.h"
Run Code Online (Sandbox Code Playgroud)

main.h的内容:

#ifndef _MAIN_H_
    #define _MAIN_H_

    #include <windows.h> …
Run Code Online (Sandbox Code Playgroud)

c++ winapi mingw makefile g++

6
推荐指数
1
解决办法
2万
查看次数

是否可以制作无框架的 PWA?

关于桌面上的渐进式 Web 应用程序的一些小问题是,当您“安装”它们/将它们固定到桌面时,它们会保留浏览器的 chrome/frame。我喜欢菜单栏、书签等都消失了,因为重点是感觉像一个本地应用程序而不是我浏览器中的东西,但框架感觉就像最后一件事阻碍了真正的本地感觉。为了进行比较,请考虑来自nw.jsElectron的“无框窗口”概念。

那么有没有办法,例如manifest.json文件中的一个选项,来隐藏框架?

我的研究表明目前的答案是“否”,所以我想接下来的问题是,是否有任何讨论?是否存在阻止它的担忧,或者它根本没有出现?任何信息都会很棒。

编辑:更清楚地说,我的意思不是简单地在带有自己图标的单独窗口中启动,这就是桌面安装的 PWA。我的意思是删除/隐藏标题栏,以及应用程序图标和名称以及最小化/最大化/关闭按钮,以及围绕整个窗口外部运行的细边框。所有这些东西:

选择浏览器框架的 lodash 桌面 PWA

javascript web progressive-web-apps

6
推荐指数
1
解决办法
2399
查看次数

如何在g ++中静态包含库?

正如标题中所提到的,这是一个真正的初学者的问题.

我意识到经过几年的CS课程和项目之后,我从来没有真正需要导出其他人可以运行的可执行文件而无需手动编译源代码(这是大多数/所有教授/助教所做的,因为他们想要无论如何要看你的源代码).

所以我的问题基本上是这样的:

当我编译一些基本的C++代码(例如"Hello World"代码)时,我似乎总是需要某种外部DLL来运行它.

  • Visual Studio需要.NET框架.
  • Cygwin需要Cygwin.dll.
  • MinGW需要libgcc_s_dw2-1.dll或类似的东西.

那么我如何简单地编译一个可执行文件,以便我(或我给文件的人)只需双击它并让它运行?我猜我有一些花哨的命令行标志我可以在g ++上用来静态链接DLL; 我以前根本不需要这样做.

正如我说的那样,这是一个超级初学者的问题,但我找不到(很容易,无论如何)这个问题的答案,StackOverflow或其他任何地方.我认为,很大程度上,因为搜索术语在其他问题的描述中如此常用.

无论如何,所有的帮助表示赞赏.

编辑:

我真的在谈论Hello World计划.例如:

HelloWorld.cpp:

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello World!" << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

dll g++ static-linking

5
推荐指数
1
解决办法
2715
查看次数

使用"使用本地IIS Web服务器"时Microsoft JScript运行时错误

一切都工作正常,直到微软论坛中的某个人在命令提示符模式下尝试了几个devenv开关:devenv/Resetsettings和Run devenv /ResetSkipPkgs.Prompt一个无关的问题,即我只需点击一下保存就无法保存aspx文件按钮.从那时起,我遇到了一个新问题.

我尝试卸载VS2012,重新启动,并重新安装无济于事.

问题是我使用"使用本地IIS Web服务器"设置时收到Microsoft JScript运行时错误.IIS无法找到它加载的文件中定义的变量.当我使用"使用Visual Studio开发服务器"选项运行时,它可以工作.

为什么这样,我怎样才能让"使用本地IIS Web服务器"再次运行.

2个图像显示问题. 实际错误消息 显示文件的实际代码和Solution Explorer

(我昨天上传了图片,不确定发生了什么.)

我不知道该怎么回事.我在另一个论坛上看到了关于类似问题的另一篇文章.

asp.net crash jscript visual-studio-2012

5
推荐指数
1
解决办法
1121
查看次数

D3:无法选择我的数据集的子集

我想用.select()或选择一个数据子集.selectAll().

例如,我有一个数据集:

var dataset = [4,5,6,7,9,56]
Run Code Online (Sandbox Code Playgroud)

此数据集的每个数字都绑定到SVG <rect>:

svg.selectAll("rect")
  .data(dataset)
  .enter()
  .append("rect");
Run Code Online (Sandbox Code Playgroud)

现在我想只选择一个数据子集来应用它上面的东西(在我的情况下用黄色着色).

这适用于着色每一个<rect>:

var allRect = myselection.selectAll("rect")
  .attr("fill","rgb(255, 255, 0)");
Run Code Online (Sandbox Code Playgroud)

但是我想选择,例如,只选择<rect>对应于5到7之间的数字的s.或者至少选择<rect>与我的数据集中的特定数字相对应的s .

我试过了:

var specificRect = myselection.selectAll("rect")[5:9]

var specificRect = myselection.selectAll("rect")[5]

var specificRect = myselection.selectAll("rect")[2,3,4]

var specificRect = myselection.selectAll("rect").data(dataset)[1]
Run Code Online (Sandbox Code Playgroud)

这些都不起作用.谢谢你的帮助.

d3.js

5
推荐指数
1
解决办法
2090
查看次数

Notepad ++中是否可以将文件扩展名与其中的点相关联?

我真的在尝试关联各种.erb文件类型。我希望能够联系起来.css.erb,并.scss.erb用CSS,.html.erb用HTML和.js.erbJavaScript的。将所有.erb文件与 HTML 相关联对于 HTML 文件本身很好,但对于 JavaScript、CSS 或 SCSS 则效果不佳。

我试过css.erb在样式配置器对话框中的“用户分机:”框中放置等,但它似乎没有正确接收文件。

我怀疑这是可能的,因为我想象引擎从.文件名的最后到结尾匹配,而不是例如类似的东西filename.endswith(ext),但我认为值得询问是否有人找到了使其工作的方法。

有什么想法吗?

ruby-on-rails erb notepad++

5
推荐指数
1
解决办法
1439
查看次数