我有一个带有ModelMultipleChoiceField
的表单,当用户在选择小部件中选择超过1000个条目并发布表单时,我得到'DatabaseError: too many SQL variables'
(使用SQLite)。
问题似乎是clean
的方法ModelMultipleChoiceField
,它试图仅通过IN
SQL子句从数据库中选择对象(例如SELECT * FROM projects WHERE id IN( 1,2,3))。当IN参数中的数字数量超过1000时,too many SQL variables
就会发生。
我使用的是最新版本的Django(1.5.dev17922),虽然我认为这是无关紧要的,因为类似的问题甚至发生在旧版本中。
我一直在通过自定义临时模型解决这个问题,我用它来连接更复杂的查询。但在我看来,似乎已经有一个系统的解决方案来解决这个问题(我希望有人可以向我指出),或者至少需要对它有所帮助 - 如何你解决类似的情况吗? - 在这种情况下,我可以开始思考如何提出一些可以在以后加入Django的一般内容。
感谢您的任何建议或帮助。
编辑:我向django-users ML发布了同样的问题,并进行了相当富有成果的讨论; https://groups.google.com/forum/?fromgroups#!topic/django-users/aI7uO49UVRU