【发布时间】: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