小编Mig*_*res的帖子

Django,按日期范围内的指定月份和年份进行过滤

我有以下型号

class Destination_Deal(models.Model):
    name = models.CharField(_("Nombre"),max_length=200)

class Departure_Date(models.Model):
    date_from= models.DateField(_('Desde'))    
    date_to= models.DateField(_('Hasta'))
    destination_deal = models.ForeignKey(Destination_Deal,verbose_name = _("Oferta de Destino"))
Run Code Online (Sandbox Code Playgroud)

这是表departure_date中的实际数据

id  date_from   date_to     destination_deal_id
1   2012-11-01  2013-03-17  1
2   2012-11-01  2012-12-16  2
3   2012-09-16  2012-10-31  3
4   2012-11-01  2012-12-16  3
5   2013-01-04  2013-01-11  4
Run Code Online (Sandbox Code Playgroud)

如果指定的月份和年份介于date_from和date_to之间,我想过滤Destination_Deals.

例1

月:九月(09)
年:2012

通缉出发日期结果:
ID 3:这是唯一触及09/2012的数据范围

例2

月份:二月(02)
年份:2013年

通缉出发日期结果:
ID 1:02/2012是在03/2012之前

所以,这一天实际上并不重要.如果月份和年份介于date_from和date_to之间,即使它是一天,也必须过滤.

我想我必须使用像这样,但我不知道该怎么做.

提前致谢!米格尔

---编辑---
这是对Aamir Adnan答案的测试,但它没有像我预期的那样工作,因为它从2012年11月到2013年3月也必须被返回,因此2013年1月之间.

Departure_Date.objects.all()
[<Departure_Date: id: 1 - from: 2012-11-01 - to: 2013-03-17>,
<Departure_Date: id: 2 - from: …
Run Code Online (Sandbox Code Playgroud)

python django

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

模拟点击DIV

我正在使用TChromium组件在Delphi XE4中开发桌面应用程序以显示Google Voice网页.

我需要以编程方式启动一个调用,我找不到触发按钮后面的javascript代码的方法(它是一个DIV)"CONNECT":

在此输入图像描述

TChromium允许执行javascript代码,我已经设法模拟单击"CALL"按钮,使用一个javascript代码,使用显示面板的字符"c"模拟Key事件.这是有效的,因为Google Voice有快捷方式,"c"是启动通话的有效快捷方式.还有javascript我可以在输入字段中设置数字.我的主要问题是我不知道如何模拟点击"CONNECT":

在此输入图像描述

如您所见,没有ID,没有onClick,也没有触发Connect按钮的快捷方式.

我可以使用以下代码获取对此DIV的引用:

document.getElementById(":87.mi").children[0].children[0].children[5].children[1].children[0].children[0].children[0].children[1];
Run Code Online (Sandbox Code Playgroud)

但是无法触发附加.click()的任何内容.我假设这是因为click()将触发未定义的onClick方法.当有人点击这个div时,有什么方法可以知道javascript代码执行了什么?

如果焦点在"拨打电话号码"输入中,我可以按"TAB"导航到"拨打电话",然后按"记住选择",最后到"连接",我可以按Enter键进行它也有效.我尝试使用与开头相同的代码来模拟CALL按钮,但这次使用TAB(键码9而不是67)并且它不起作用,因为焦点不移动.

我试图用delphi以编程方式使用mouse_event,keybd_event,PostKeyExHWND,PostKeyEx32和PostMessage进行编程,没有结果,因为焦点不会偏离"Number to call"

现在唯一可行的选择是使用SetCursorPos移动鼠标和delphi,并模拟点击该按钮计算坐标,但这将是我选择的最后一个选项,因为我更喜欢使用javascript代码来执行此操作.

欢迎任何建议!

javascript delphi tchromium

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

Firemonkey:在带有 BorderStyle 的表单中使用时未显示 TWebBrowser 无

我在Delphi XE8中开发Firemonkey应用,发现如下情况:

我需要在一个小表单中显示一个小网页,其中只有一个 TWebBrowser 控件,Align:=Client 和 Form BorderStyle = None 但由于某种原因,在 Windows 中,表单显示为灰色,并且 TWebBrowser 未显示,如您在图片中看到的那样。在 Mac OS 中按预期工作。

如果我禁用了像 Minimize、Maximize 或 SystemMenu 这样的 BorderIcons 之一,也会发生这种情况。我已经尝试过 Delphi 10 和同样的问题。我曾尝试使用 TMS WebBrowser for Firemonkey (TMSFMXWebBrowser) 的试用版和同样的问题。

在 Win32 中使用 TWebBrowser 和 FormStyle = Single 的表单 在此处输入图片说明

在 Win32 中使用 TWebBrowser 和 FormStyle = None 的表单 在此处输入图片说明

在 Win32 中使用 TWebBrowser 和 FormStyle = Single 和 Maximize Button = False 的表单 在此处输入图片说明

在 Mac OS 中使用 TWebBrowser 和 FormStyle = Single 形成表单 在此处输入图片说明

有人知道原因以及我如何解决这个问题吗?我真的很想以一种没有任何边框/图标的形式显示网页,就像在 Mac OS 中一样。

delphi firemonkey delphi-xe8 delphi-10-seattle

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

MacOS和JSVC:SCARD_E_NO_SERVICE:智能卡资源管理器未运行

我有一个需要在MacOS Sierra中作为守护进程运行的JAR文件,我决定使用Apache Commons Daemon和JSVC来达到这个目的.我知道也许JSVC并不是真的需要用于此目的(它似乎只允许在低范围内打开端口)并且可以通过系统/启动实现相同的功能,因此任何有或没有JSVC的帮助/解决方案都是值得赞赏的.

这就是我从命令行运行jar的方法,它运行正常.它使用端口8085打开WebSocket连接,并等待传入​​连接.然后,它连接到智能卡读卡器并从卡中获取一些数据.

java -cp "myjar.jar:jars/*" full_class_name
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用Apache Commons Daemon接口和JSVC运行相同的jar时,jar正常启动并开始在端口8085中侦听.

./jsvc -debug -cp commons-daemon-1.1.0.jar:myjar.jar:jars/* -cwd . -pidfile /tmp/file.pid full_class_name
Run Code Online (Sandbox Code Playgroud)

问题是,出于某种原因,尝试连接智能卡读卡器时会出现异常.

INFORMACIÓN: WebSocket Registered apps: URLs all start with ws://localhost:8085
may 15, 2018 10:04:37 AM org.glassfish.tyrus.server.Server start
INFORMACIÓN: WebSocket server started.
LISTENING
Daemon started successfully
java_start done
Waiting for a signal to be delivered
create_tmp_file: /tmp/541.jsvc_up
jnasmartcardio.Smartcardio$EstablishContextException: jnasmartcardio.Smartcardio$JnaPCSCException: SCardEstablishContext got response 0x8010001d (SCARD_E_NO_SERVICE: The Smart card resource manager is not running.)
    at jnasmartcardio.Smartcardio$JnaTerminalFactorySpi.engineTerminals(Smartcardio.java:81)
    at javax.smartcardio.TerminalFactory.terminals(TerminalFactory.java:351)
    at apdu4j.TerminalManager.getTheReader(TerminalManager.java:228)
    at com.st.middleware.a.a.b.connect(SourceFile:24) …
Run Code Online (Sandbox Code Playgroud)

macos smartcard jsvc

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

类型参数 'T' 必须是类类型

我正在为 REST 操作编写一个小助手类。我的主要目标之一是使用泛型提供从 JSON 中的正文响应到特定对象的自动转换。

这是其中一个函数在 helper 类中的样子:

function RESTServiceCallHelper.ExecuteAsObject<TObj>(resource: string): TObj;
var
 RestRequest: TRESTRequest;
 obj: TObj;
begin
  PrepareRequest(RestRequest, resource);
  RestRequest.Execute;
  obj := TJson.JsonToObject<TObj>(RestRequest.Response.Content);
  result:=obj;
end;
Run Code Online (Sandbox Code Playgroud)

这是我尝试使用它的方式:

类型

   TPartnerCreditInfo   = class
      FlCreditClassDesc: string;
      FCppID: string;
      FCreditClass: string;
      FCreditClassDesc: string;
      FCreditLimit_CurrencyCode: string;
      FCreditLimit: double;
      FAmountBalance: double;
      FAmountBalance_CurrencyCode: string;
      FAmountBalanceLast: double;
      FAmountBalanceLast_CurrencyCode: string;
   end;

procedure TModuleX.CallAPIS;
var
  lRESTHelper : TrpRESTServiceCallHelper;
  pc: TPartnerCreditInfo;
begin
  lRESTHelper:= TrpRESTServiceCallHelper.Create('https://mydomain/api');
  lRESTHelper.AddQueryStringParam('param1','paramvalue');

  pc:=lRESTHelper.ExecuteAsObject<TPartnerCreditInfo>('resource');
  showmessage(pc.FCppID);
end;
Run Code Online (Sandbox Code Playgroud)

我在编译时面临的问题是:

obj := TJson.JsonToObject<TObj>(RestRequest.Response.Content);
[dcc32 Error] RESTServiceCallObj.pas(99): E2511 Type parameter 'T' must be …
Run Code Online (Sandbox Code Playgroud)

delphi

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

从JSON文件解码UTF-8

我有一个JSON文件,其编码的UTF-8字符串字段表示JPG内容:

"ImageData": "ÿØÿà\u0000\u0010JFIF\u0000\u0001\u0002\u0000\u0000d\u0000d\u0000\u0000
Run Code Online (Sandbox Code Playgroud)

我正在解析JSON并获取该值:

var imageString : string;
...
imageString:=jv.GetValue<string>('ImageData');
Run Code Online (Sandbox Code Playgroud)

但是我在解码字节并将它们保存到文件时遇到问题

选项1。 SaveBytesToFile(BytesOf(imageString),pathFile);

如您所见,标题不正确(应以ÿØÿà开头)

选项1

选项2。 SaveBytesToFile(TEncoding.UTF8.GetBytes(imageString),pathFile);

与选项1类似的问题

选项2

SaveBytesToFile的代码:

procedure SaveBytesToFile(const Data: TBytes; const FileName: string);
var
  stream: TMemoryStream;
begin
  stream := TMemoryStream.Create;
  try
    if length(data) > 0 then
      stream.WriteBuffer(data[0], length(data));
    stream.SaveToFile(FileName);
  finally
    stream.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

如何正确解码?

delphi firemonkey

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