【问题标题】:Django app uses only default database to retrieve data. How to set the retrieve function to mysql databseDjango 应用程序仅使用默认数据库来检索数据。如何将检索功能设置为mysql数据库
【发布时间】:2017-07-02 07:47:36
【问题描述】:

我的 Django 项目有两个数据库。我创建了将数据输入数据库(mysql)的函数,但数据总是保存在默认数据库中。我现在使用 .save(using='db2') 解决了这个问题。当前的问题是我已经使用实例来获取用户的 id,当我想使用下面的函数查看用户详细信息时,默认数据库的用户 id 与 mysql 数据库的用户 id 冲突所以默认数据库详细显示。我怎样才能像我用来保存数据的那样只使用 db2。显示用户详细信息的功能如下所示。

DATABASES = {
'default':{
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3')},

    'db2': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'subscribers',
    'USER': 'root',
    'PASSWORD': '######',
    'HOST': 'localhost',
    'PORT': '3306',

}}

我在我的 Django 应用程序中创建的函数,在请求时显示用户的详细信息。

@login_required
def userDetail(request, id=None):
    instance = get_object_or_404(Subscribers, id=id)
    context = {
        "Name": instance.name,
        "instance": instance,
    }
    return render(request, 'userDetail.html', context)

【问题讨论】:

    标签: python mysql django database


    【解决方案1】:

    由于您使用的是“db2”,请将您的实例更改为:

    instance = get_object_or_404(Subscribers.objects.using('db2'), id=id)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      • 2015-12-03
      相关资源
      最近更新 更多