小编Dan*_*lás的帖子

Django查询否定

我知道如何在django中构建过滤器和Q对象,但我不知道如何否定API提供的运算符,例如对于包含运算符我想要的东西就像notcontains.

例如

q=Q(name__notcontains="SomeString")
Run Code Online (Sandbox Code Playgroud)

这将获得所有名称不包含"SomeString"的对象.

是否有一些我缺少的语法?

谢谢.

django negation

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

Django request.POST不包含提交表单的按钮的名称

我有一个带有两个不同提交按钮的django表单,在提交表单的视图中我需要知道按下了什么提交按钮并相应地采取不同的操作.

从我所看到的提交按钮的名称或ID应该在request.POST字典中的某个地方,但它不存在!

这是我的表单的一个片段:

<form id="editPaperForm" action="{{paper.editURL}}" method="POST">
   <input type="submit" name="savePaperButton" id="savePaperButton" value="Save and Send Later"/>
   <input type="submit" name="sendPaperButton" id="sendPaperButton" value="Save and send"/>

   ...

</form>
Run Code Online (Sandbox Code Playgroud)

在视图中:

...
if 'sendPaperButton' in request.POST:
   return applicants_confirmSend(request, paperID)
else:
   return applicants_home(request)
Run Code Online (Sandbox Code Playgroud)

sendPaperButton永远不在request.POST中,也不是另一个,我应该在其他地方寻找吗?

我唯一的想法就是在发送表单之前添加一个隐藏字段并通过javascript修改它,但这似乎有点多余,因为我很确定数据应该存在于某个地方......

谢谢!

forms django post submit request

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

拖动Jquery拖出它的父jquery对话框

我有一个充满可拖动对象的jquery对话框.可放置目标位于对话框之外.

当我启动拖动时,droppable会正确响应(视觉指示它是一个可放置的目标),并且在丢弃之后正确的事件触发,因此我可以正确处理掉落.

问题是拖动的对象仅在对话框中保持可见,并且不会"跳出".

我已经有可拖动从一个可滚动的div拖动到另一个没有问题的拖动,但从一个对话框到包含该对话框的页面它不起作用.对话框内容在任何拖动方向上滚动.

我的可拖动论点如下:

var draggableArguments={
     revert: 'invalid',
     helper:'clone',
     containment: 'DOM',
     zIndex: 999,
     addClasses: false
    }

   theObject.draggable(draggableArguments);
Run Code Online (Sandbox Code Playgroud)

任何建议,以便我的可拖动对象可以跨越对话框边界?

谢谢.

jquery drag-and-drop jquery-ui-dialog

11
推荐指数
1
解决办法
8988
查看次数

如何使用无效标识符作为Django表单字段名称

我不确定是否应该在这里还是在serverfault中发布此问题,因为它涉及django和nginx配置文件。

我有一个django视图,该视图从包含文件字段的表单接收POST数据。

该请求通过一个nginx模块(上传模块)进行处理,该模块接收文件上载字段,将其存储到磁盘位置,然后将额外的字段附加到可以找到每个文件的本地路径以及它们的名称和其他元数据,然后剥离POST中的原始文件字段。

不幸的是,附加的字段不是很灵活,其名称包含句点(。)或破折号(-)。

一切都很好,但问题出在python方面。如果想使用表单来验证传入的POST数据,但是我不知道如何定义一个表单,该表单的字段名称包含句点或破折号。有没有一种方法可以告诉Django表单字段具有用于存储该变量的不同名称?

我的解决方法是根本不使用Django表单,而以另一种方式(如何?)清理传入的数据。

或者,如果有人有使用nginx中的上载模块的经验,并且知道如何使用指令

upload_set_form_field $upload_field_name.name "$upload_file_name";
upload_set_form_field $upload_field_name.content_type "$upload_content_type";
upload_set_form_field $upload_field_name.path "$upload_tmp_path";
Run Code Online (Sandbox Code Playgroud)

以便$ upload_field_name.XXXX附加字段不使用句点?(破折号有效,但再次破坏了python的标识符,其他任何字符也破坏了配置文件)

在这两种情况下有什么建议吗?

谢谢!

python forms django upload nginx

3
推荐指数
1
解决办法
1029
查看次数