【问题标题】:Not able to store data in mongodb无法在mongodb中存储数据
【发布时间】:2021-02-06 19:17:41
【问题描述】:

views.py 中的函数:

def addevent(request):
    client = MongoClient('localhost', 27017)
    db_handle = client['event']
    col = db_handle['library_event']
    
    if request.method == 'POST':
        form = Addeventform(data=request.POST)
        
        if form.is_valid():
                add_event=models.Event(name=form.cleaned_data['name'], venue=form.cleaned_data['venue'], time=form.cleaned_data['time'], organiser = form.cleaned_data['organiser'])
                
                collection.insert_one(dictionary)
                
                col.update_one({'name':add_event.name},{'venue': add_event.venue },{'time': add_event.time},{'organiser':add_event.organiser})
                add_event.save(using='mongo')
                
                return render(request,'templates/index.html')

settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'book',
        'USER': 'root',
        'PASSWORD': 'jaswanth',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    },
    'mongo': {
        'ENGINE': 'djongo',
        'NAME': 'event',
    }
    
       
      
    
}

运行python manage.py runserver后,我得到了:

Watching for file changes with StatReloader
Performing system checks...

System check identified some issues:

WARNINGS:
library.Admins.id: (fields.W342) Setting unique=True on a ForeignKey has the same effect as using a OneToOneField.
        HINT: ForeignKey(unique=True) is usually better served by a OneToOneField.

System check identified 1 issue (0 silenced).

You have 2 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): library.
Run 'python manage.py migrate' to apply them.
February 07, 2021 - 00:41:38
Django version 3.0.5, using settings 'lms.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

运行 python manage.py migrate 后,我得到了这个错误

"django.db.utils.OperationalError: (1050, "表 'library_event' 已经存在")" .

我在 mysql 中创建了“library_event”表。虽然我没有在 mysql 中使用该表保存事件模型,但数据将存储在 mysql 中的该表中,而不是 mongodb 集合中。

我输入的数据没有存储在本地主机上的 Mongodb 数据库中。请帮我解决这个问题。

【问题讨论】:

  • 如果您想使用 MongoDB,请相应地配置您的应用程序。
  • @D.SM 你能解释得更清楚吗,我必须同时使用 mysql 和 mongodb。我只想将事件部分存储在 mongodb 中,这里给出了
  • 在一个只使用 MongoDB 的新应用程序中工作。

标签: python django database mongodb


【解决方案1】:

试试这个:

DATABASES = {
        'default': {
            'ENGINE': 'djongo',
            'NAME': 'event',
        }         
    }

【讨论】:

    猜你喜欢
    • 2018-04-26
    • 2018-08-13
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多