问候,在Magento我想触发一个事件,一旦订单被设置为处理(通过网关确认或手动),例如:如果一般客户(ID 1)花费超过100美元并且付款已经确认,请设置他的团体ID为4(银色VIP,按照促销规则在全球获得2%折扣)我会给予赏金,但我想在2天之前得到答案O_o
编辑:到目前为止我收到的答案只是一个部分答案,我也发现链接非常混乱,我不清楚什么是最小设置,我有什么配置创建等...我也在尝试了解如何获得付费客户ID /型号.
我读了很多帖子,说服我应该开始编写单元测试,我也开始使用依赖注入(Unity)以便更容易进行模拟,但我仍然不太确定我应该在哪个阶段开始编写单元测试和模拟,以及如何或从何处开始.
首选方法是在TDD方法中描述的方法之前编写单元测试吗?
单元测试有什么不同的方法或方式吗?
我有一种情况,当DB中的某些内容发生变化时,我需要通知某些用户.我的想法是抓住pre_save并post_save发出信号并制作某种差异和邮件.一般来说它运作良好,但我不知道如何获得m2m字段的差异.
目前我有这样的事情:
def pre_save(sender, **kwargs):
pk = kwargs['instance'].pk
instance = copy.deepcopy(sender.objects.get(pk=pk))
tracking[sender] = instance
def post_save(sender, **kwargs):
instance = copy.deepcopy(kwargs['instance'])
print diff(instance, (tracking[sender])) # TODO: don't print, save diff somewhere
Run Code Online (Sandbox Code Playgroud)
Diff函数应该适用于每个模型(在mommet我有四个模型类).使用深度复制,我可以保存旧模型,但我不知道如何保存m2m字段,因为它们在单独的表中(是的,我知道我可以获得这些数据,但在执行的时候我不知道哪些字段是m2m,我不想为每个型号创建不同的插槽).我想要的是通用解决方案,所以我可以稍后添加模型而不考虑通知部分.
我的计划是在调用插槽后调用get_data()并clear_data()运行save(),以清理插槽生成的差异.
这是这样做的好方法吗?有没有更好的办法?是否有能为我做这项工作的django应用程序?
请原谅我的英语,这不是我的母语.
我正在尝试播放录制的wave文件.在播放时,会在以下语句中引发异常:
Player player = Manager.createPlayer(is, "audio/mpeg");
Run Code Online (Sandbox Code Playgroud)
我播放wave文件的全部代码如下:
if (types[cnt].equals("audio/x-wav")) {
Class clazz = Class.forName("RecordAudio");
InputStream is =
clazz.getResourceAsStream("file:///SDCard/BlackBerry/original.wav");
//create an instance of the player from the InputStream
Player player = Manager.createPlayer(is, "audio/mpeg");
player.realize();
player.prefetch();
//start the player
player.start();
}
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
我知道网站上已有一些关于此主题的问题......
我只是想了解使用ASP.NET Profile Provider与一个流量巨大的网站是否安全?
我看待它的方式,它的布局效率低下.您存储属性名称(这是一个字符串)和属性值(也是一个字符串).如果您只是想在配置文件中存储甚至年龄,则不必要地将字符串"age"一遍又一遍地存储在数据库中,而使用自创建的表,您只需添加一个标题为age的列,而不是冗余?
(我只是想确保我不会错过任何关于它的东西,因为我对它很新.)
我正在实现一个系统,用于在我正在编写的程序的不同部分之间发送消息.有一些通用的消息类型以及一些特定于程序的每个部分.我想避免从每个类型的基本消息类派生中固有的层次结构腐烂,所以我将这种类型封装在int或ushort中.然后,我使用"Messages"命名空间集中不同的类型,并使用一堆常量集中静态类.但是,我遇到了必须维护每个不同部分的唯一编号列表的问题:
namespace Messages
{
public static class Generic
{
public const Int32 Unknown = 0;
public const Int32 Initialize = 1;
...
public const Int32 Destroy = 10;
}
}
Run Code Online (Sandbox Code Playgroud)
其他地方
namespace Messages
{
public static class Graphics
{
public const Int32 Unknown = 0;
public const Int32 AddGraphic = 11; // <-- ?
}
}
Run Code Online (Sandbox Code Playgroud)
拥有那么随意的11似乎很难,特别是如果我有其中的几个,保持和更新以确保没有碰撞似乎是一种痛苦.是否有一个简单的解决方案,以确保每个参考都是独一无二的?我尝试使用静态只读,在静态构造函数中将它们从Unique.ID()函数初始化,但如果我这样做,我无法切换()传递的Message类型,因为它说"预期的常量类型"对于每个案例.
我在Linux上使用Python 2.5,在多个并行的FCGI进程中.我用
chars = string.ascii_letters + string.digits
cookie = ''.join([random.choice(chars) for x in range(32)])
Run Code Online (Sandbox Code Playgroud)
生成不同的cookie.假设RNG是从/ dev/urandom播种的,并且随机数序列来自Mersenne twister,我预计几乎没有碰撞机会.
但是,我确实看到了常规冲突,即使只有少数(<100)用户随时登录.
为什么随机数不随机?
我想在windbg中放置一个条件断点.
例如,让我们说LoadLibrary API.
如何加载user32.dll时,如何设置断点使其成为应有的断点.
> x kernel32!LoadLibraryW
Run Code Online (Sandbox Code Playgroud)
它会给出一些地址[XXXX]
现在我可以把断点作为
> bu [XXXX]
Run Code Online (Sandbox Code Playgroud)
但是对于所有对LoadLibraryW的调用都会出现这种情况.
有什么建议.
我正在做一个小画廊.我想从目录中读取文件名,并在删除一些前导数字和文件扩展名后打印下面的文件名.
我有两个版本的代码.
$current_dir = "$DOCUMENT_ROOT"."/weddings2/";
$dir = opendir($current_dir); // Open the sucker
while ($file = readdir($dir)) // while loop
{
$parts = explode(".", $file); // pull apart the name and dissect by period
if (is_array($parts) && count($parts) > 1) { // does the dissected array have more than one part
$extension = end($parts); // set to we can see last file extension
$bfile= substr($file, 2); //strips the first two characters
$cfile= preg_replace(('/\d/'),' ',$bfile);//remove numbers
$cfile= preg_replace(('/_/'),' ',$cfile);
$cfile= preg_replace(('/.jpg/'),' ',$cfile); …Run Code Online (Sandbox Code Playgroud)