我想在django中获取一个登录表单,只允许三次登录尝试,然后重定向到"登录帮助"页面.我目前正在使用内置的"django.contrib.auth.views.login"视图和自定义模板.在n次登录尝试失败后如何强制它重定向到另一个页面?
我有一个Postgres数据库(9),我正在编写触发器.我希望触发器设置修改时间和记录的用户ID.在Firebird中,您有一个可以在触发器中使用的CONNECTIONID,因此您可以在连接到数据库时向表中添加值(这是一个桌面应用程序,因此连接在应用程序的生命周期内是持久的),类似于这个:
UserId | ConnectionId --------------------- 544 | 3775
然后在触发器中查找connectionid 3775属于用户ID 544并使用544作为修改记录的用户.
我可以在Postgres中使用类似的东西吗?
鉴于以下界面:
ITest = interface ['guidhere']
procedure TestMethod;
end;
Run Code Online (Sandbox Code Playgroud)
是否有任何理由在实现类中TestMethod()
声明为 as public
?我已经把它放在private
和protected
部分,它似乎没有什么区别。我只是想知道是否有任何指导方针,从设计角度(或任何角度),使该public
部分成为实现该方法的正确部分。
我有一个这样定义的测试:
[Test]
[TestCase('TestSetAsInteger 001.', '0')]
[TestCase('TestSetAsInteger 002.', '666')]
procedure TestSetAsInteger(IntVal : integer);
Run Code Online (Sandbox Code Playgroud)
并像这样实现:
procedure TTestKeyValueList.TestSetAsInteger(IntVal: integer);
begin
FKVL.AsInteger['testkey'] := IntVal;
Assert.AreEqual(IntVal, FKVL.AsInteger['testkey']);
end;
Run Code Online (Sandbox Code Playgroud)
FKVL 中的方法是存根,因此它们应该失败。问题是,他们总是过去。
现在,如果我将测试实现更改为:
procedure TTestKeyValueList.TestSetAsInteger(IntVal: integer);
begin
FKVL.AsInteger['testkey'] := IntVal;
Sleep(1); //This can be anything really, I can call FKVL.Count or other some such
Assert.AreEqual(IntVal, FKVL.AsInteger['testkey']);
end;
Run Code Online (Sandbox Code Playgroud)
现在测试按预期进行。诡异的。我在这里做错了什么吗?