Django – 如何在SqLite3后端启用外键

Django – 如何在SqLite3后端启用外键,第1张

概述当尝试使用SqlLite3作为Django的DB后端时,我希望能够使用SqLite的外键支持. 根据 http://www.sqlite.org/foreignkeys.html,您可以通过运行启用外键支持: PRAGMA foreign_keys = ON; 默认情况下禁用此支持,并且在运行大多数依赖于数据库的测试时是理想的. 在使用Django测试框架时如何控制此功能?你能在setUp / t 当尝试使用sqllite3作为Django的DB后端时,我希望能够使用sqlite的外键支持.
根据 http://www.sqlite.org/foreignkeys.html,您可以通过运行启用外键支持:

PRAGMA foreign_keys = ON;

默认情况下禁用此支持,并且在运行大多数依赖于数据库的测试时是理想的.
在使用Django测试框架时如何控制此功能?你能在setUp / tearDown方法中发送特定于后端的命令吗?您是否愿意在全局连接设置(‘DATABASE =’设置)中指定此选项?

解决方法 这里部分回答: https://stackoverflow.com/a/6843142/552671.

您可以在应用中激活它(通常在myapp / apps.py中).

from django.db.backends.signals import connection_createddef activate_foreign_keys(sender,connection,**kwargs):    """Enable integrity constraint with sqlite."""    if connection.vendor == 'sqlite':        cursor = connection.cursor()        cursor.execute('PRAGMA foreign_keys = ON;')class MyAppConfig(AppConfig):    def ready(self):        connection_created.connect(activate_foreign_keys)

您还必须配置MyAppConfig,将default_app_config =’myapp.apps.PanelConfig’写入myapp / __ init__.py.

注意:这样不仅可以激活外键,还可以激活sqlite.不过,我认为这就是你想要的.

总结

以上是内存溢出为你收集整理的Django – 如何在SqLite3后端启用外键全部内容,希望文章能够帮你解决Django – 如何在SqLite3后端启用外键所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存