在模板中显示另一个数据库的数据,而不是来自 django 模型

Show data of another database in templates, not from django models

我只想知道 是否可以在我的 Django 模板中显示我另外两个 MongoDB 集合中的数据?不仅仅是来自 django 数据库的那些。

这是我的应用程序的作用: 我有一个用户表单,它使用我的模型数据库。我使用另外两个 python 程序通过 Celery 中的子进程来处理它,并且每个程序都为结果生成一个 MongoDB。

我想在我的模板中显示这些结果,但我不知道我所做的是否正确,或者 Django 是否提供了一些帮助。

这是我到目前为止所做的:

views.py 开始时,检查连接并访问文档:

#This is calling my model and form 
from .forms import SampleForm
from .models import Sample

....#some code here
import logging

# Get an instance of a logger
logger = logging.getLogger(__name__)

sys.path.append(settings.APP1_PATH)
sys.path.append(settings.APP2_PATH)

#MongoDB connection for App1
try:
    app1_db = pymongo.MongoClient(settings.MONGO_HOST, settings.MONGO_PORT)[settings.app1_MONGO_DB]
except pymongo.errors.ConnectionFailure, e:
    logger.error("Could not connect to App1 MongoDB: %s" % e)

#For the GridFS connection
try:
    conn=pymongo.MongoClient(settings.MONGO_HOST, settings.MONGO_PORT)
    db = conn.app1fs 
    app1fs_db = GridFS(db)
except pymongo.errors.ConnectionFailure, e:
    logger.error("Could not connect to App1FS MongoDB: %s" % e)


#MongoDB connection for App2
try:
    app2_db = pymongo.MongoClient(settings.MONGO_HOST, settings.MONGO_PORT)[settings.App2_MONGO_DB]
except pymongo.errors.ConnectionFailure, e:
    logger.error("Could not connect to App2 MongoDB: %s" % e)

def results_detail(request, id): 
    sample_instance = get_object_or_404(Sample, id=id)    
    context = {
        "name": sample_instance.get_sample_name,
        "sample": sample_instance
    }
    return render(request, "analysis/results_detail_base.html", context)

def app1_results_detail(request):
    #call MongoDB document's collections then pass to template
    #App1's
    #insert here..
    context = {
    }
    return render(request, "analysis/app1_results_detail.html", context)

现在,我的 app1 和 app2 结果模板仍然是空白的,因为我不知道如何在视图中访问它们。我已经阅读了 inspectdb 以了解旧数据库的使用,但它不适用于 Mongo 数据库。有人可以帮忙吗?

当然可以,您可以连接到该数据库,在 return render(request, template.html, params)

的 params/context 个变量中创建一个查询存储 {key:value}

像这样在模板中使用键:{{key}}在任何您想使用与该键关联的值的地方。