我有订单和发货模型.装运有订购的外键.
class Order(...):
...
class Shipment()
order = m.ForeignKey('Order')
...
Run Code Online (Sandbox Code Playgroud)
现在,在我的一个视图中,我想删除订单对象以及所有相关对象.所以我调用order.delete().
我有Django 1.0.4,PostgreSQL 8.4和我使用事务中间件,所以整个请求都包含在单个事务中.
问题是在order.delete()上我得到:
...
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/__init__.py", line 28, in _commit
return self.connection.commit()
IntegrityError: update or delete on table "main_order" violates
foreign key constraint "main_shipment_order_id_fkey" on table "main_shipment"
DETAIL: Key (id)=(45) is still referenced from table "main_shipment".
Run Code Online (Sandbox Code Playgroud)
我在connection.queries中检查了正确的查询以正确的顺序执行.首先发货被删除,之后django在订单行上执行删除:
{'time': '0.000', 'sql': 'DELETE FROM "main_shipment" WHERE "id" IN (17)'},
{'time': '0.000', 'sql': 'DELETE FROM "main_order" WHERE "id" IN (45)'}
Run Code Online (Sandbox Code Playgroud)
外键具有ON DELETE NO ACTION(默认值)并且最初是延迟的.我不知道为什么我会得到外键约束违规.
我还尝试注册pre_delete信号并在调用订单删除之前手动删除货件对象,但是它导致了同样的错误.
我可以在Postgres中更改此键的ON DELETE行为,但这只是一个黑客,我想知道是否有人更好地了解这里发生了什么.
还有一个小细节,我的订单模式从车模型继承,所以它实际上没有id字段,但cart_ptr_id和顺序执行这里还删除车后删除,但似乎不相关?发货 - >订单问题,所以我在示例中简化了它.
使用MooseX :: Declare时的性能是否会受到影响,而它在初始魔术时会遇到(即将定义"转换"为标准的Perl语法)?即,一旦编译和初始运行时设置完成,调用MooseX :: Declare方法与通过传统声明定义的方法之间是否存在性能差异?
我开始学习Ubuntu 9.10了.如何以编程方式检索所有可用的Wifi网络?有人能举个例子吗?
在网上阅读了很多书籍,博客和文章后,我对语义技术产生了兴趣,说它可以让数据机器理解,允许智能代理做出很好的推理,自动化和动态的服务组合等.
我还在读两年的相同内容.文章/博客/语义会议的数量大幅增加.但我仍然无法看到任何杀手级应用程序.为什么会这样?或者是否已经存在一些应用程序/产品(商业/开源),实际上是在做所有被吹嘘的事情?
为了更准确地说,是有它利用语义技术(ESP RDF/OWL/SPARQL),并提供功能/性能/可维护性,这将是不可能与现有的(无语义)技术的任何产品吗?某些产品完全依赖于语义技术,真正为客户增加价值并创造收入?
表有时间戳列.其中的样本值可能是2010-03-30 13:42:42.使用Hibernate,我正在进行范围查询Restrictions.between("column-name",fromDate,toDate).
此列的Hibernate映射如下所示.
<property name="orderTimestamp" column="order_timestamp" type="java.util.Date" />
Run Code Online (Sandbox Code Playgroud)
让我们说,我想找出所有日期为2010年3月30日和2010年3月31日的记录.此字段的范围查询如下所示.
Date fromDate = new SimpleDateFormat("yyyy-MM-dd").parse("2010-03-30");
Date toDate = new SimpleDateFormat("yyyy-MM-dd").parse("2008-03-31");
Expression.between("orderTimestamp", fromDate, toDate);
Run Code Online (Sandbox Code Playgroud)
这不起作用.
查询将转换为相应的时间戳"2010-03-30 00:00:00"和"2010-03-31 00:00:00".因此,2010年3月31日的所有记录都将被忽略.
解决这个问题的一个简单方法是将结束日期定为"2010-03-31 23:59:59".但是,我想知道是否有方法只匹配timestamp列的日期部分.
还Expression.between()包括两个限制?文档对此没有任何启示.
我正在使用C#在邮件客户端项目中工作.我正在使用POP和IMAP协议与服务器通信.问题是我无法弄清楚为什么当我想获取消息的UID时,POP服务器和IMAP服务器的结果是不同的.
POP
C: UIDL 1
S: +OK 1 UID2-1269789826
Run Code Online (Sandbox Code Playgroud)
和
IMAP
C: $ FETCH 1 (UID)
S: * 1 FETCH (UID 2)
S: $ OK Fetch completed.
Run Code Online (Sandbox Code Playgroud)
为什么获得UID的结果如此不同?IMAP是另一个功能吗?欢迎任何帮助.谢谢.
我有一个网站,我想从ISO迁移到UTF-8.
我有一个由以下主键索引的数据库记录:
s:22:"Informations générales";
Run Code Online (Sandbox Code Playgroud)
问题是,现在(使用UTF-8),当我序列化字符串时,我得到:
s:24:"Informations générales";
Run Code Online (Sandbox Code Playgroud)
(注意字符串的大小现在是字节数,而不是字符串长度)
所以这与非utf8以前的记录不兼容!
我做错什么了吗 ?我怎么能解决这个问题?
谢谢
我想创建一个带有两个参数的类.一个应该简单地输入为T.另一个应该被输入为扩展T和T的东西SomeInterface<T>.当我尝试这个时
public class SomeClass<T, S extends SomeInterface<T> & T>
Run Code Online (Sandbox Code Playgroud)
然后Java抱怨
"类型T不是接口;它不能被指定为有界参数"
如果相反,我试图为S创建一个接口
public interface TandSomeInterface<T> extends SomeInterface<T>, T
Run Code Online (Sandbox Code Playgroud)
然后Java抱怨
"不能将类型参数T称为超类型"
有没有办法在Java中这样做?我想你可以用C++做到这一点......?
我有Client-Server环境并为Client-Server开发了一个项目.
我需要使用VB.NET以编程方式共享我的Server机器的文件夹
请帮我.
我通过使用url params传递语言环境,将I18N添加到我的rails应用程序中.我的网址看起来像http://example.com/en/users和http://example.com/ar/users(分别针对英语和阿拉伯语语言环境).
在我的路由文件中,我使用:path_prefix选项定义了我的路由:
map.resources :users, :path_prefix => '/:locale'
Run Code Online (Sandbox Code Playgroud)
并且使用ApplicationController中定义的before_filter设置locale
def set_locale
I18n.locale = params[:locale]
end
Run Code Online (Sandbox Code Playgroud)
我还定义了ApplicationController#default_url_options,将语言环境添加到应用程序生成的所有URL:
def default_url_options(options={})
{:locale => I18n.locale}
end
Run Code Online (Sandbox Code Playgroud)
我想要的是在布局标题(在所有页面中显示)中添加一个链接,该链接将链接到同一页面,但链接到另一个区域设置.
例如,如果我正在浏览阿拉伯语语言环境,我希望标题中有一个"英语"链接,它会将我重定向回当前页面,并将语言环境设置为英语.有没有办法在rails中执行此操作?