You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django 1.9适配的django-nonrel版本无法找到,新手求MongoDB配置方法

适配Django 1.9的MongoDB配置方案

作为长期和Django、MongoDB打交道的开发者,我很理解你现在的困惑——django-nonrel确实在Django 1.5之后就基本停止维护了,官方没有推出适配1.9的正式版本,所谓的"master"分支也只是旧代码的留存,没有针对Django 1.9做兼容更新,直接用大概率会踩一堆坑。不过别担心,还有几个更靠谱的方案可以解决你的问题:

方案一:使用MongoEngine(推荐)

MongoEngine是一款成熟的MongoDB ODM(对象文档映射)工具,专门为Python设计,和Django的兼容性非常好,即使是1.9版本也能稳定运行。它不需要依赖django-nonrel,完全独立于Django原生ORM工作,步骤如下:

  1. 安装MongoEngine
    在终端执行:

    pip install mongoengine
    
  2. 配置数据库连接
    在Django项目的settings.py中添加MongoDB的连接配置(可以不用修改原生的DATABASES配置,除非你同时需要使用其他关系型数据库):

    from mongoengine import connect
    
    # 连接MongoDB
    connect(
        db="your_database_name",  # 你的数据库名
        host="localhost",         # MongoDB服务地址
        port=27017,               # 默认端口
        # 如果数据库有认证,添加以下内容
        # username="your_username",
        # password="your_password"
    )
    
  3. 编写MongoDB模型
    不再使用Django原生的models.Model,而是继承MongoEngine的Document类:

    from mongoengine import Document, StringField, IntField, DateTimeField
    
    class BlogPost(Document):
        title = StringField(required=True, max_length=200)
        content = StringField()
        author = StringField()
        publish_date = DateTimeField()
    
        # 可以定义索引
        meta = {
            'indexes': ['title', 'publish_date']
        }
    
  4. 在视图中使用模型
    用法和Django ORM非常相似,学习成本很低:

    from django.shortcuts import render
    from .models import BlogPost
    
    def post_list(request):
        # 查询所有文章
        posts = BlogPost.objects.all().order_by('-publish_date')
        return render(request, 'posts/list.html', {'posts': posts})
    

方案二:尝试手动安装django-nonrel master分支(不推荐)

如果你一定要尝试使用django-nonrel,可以通过git克隆其master分支源码进行本地安装,但要做好踩坑的准备——因为这个分支没有针对Django 1.9做适配,可能会出现大量兼容性错误(比如中间件结构、模型语法的变化),仅适合测试使用:

  1. 克隆源码并安装
    在终端执行以下命令:

    git clone https://github.com/django-nonrel/django-nonrel.git
    cd django-nonrel
    git checkout master
    pip install -e .
    
  2. 后续配置
    安装完成后,还需要搭配django-mongodb-engine和djangotoolbox使用,但这两个项目同样停止维护,大概率也会和Django 1.9冲突,所以不推荐在生产环境使用。

总结

如果你是新手,强烈建议选择MongoEngine方案,它的文档完善、社区活跃,能让你快速上手Django+MongoDB的开发,避免因为django-nonrel的兼容性问题浪费时间。

内容的提问来源于stack exchange,提问作者khadija.EL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:18:17