簡體   English   中英

無法使用djongo“數組模型字段”將數據添加到MongoDB中

[英]Can't to add a data into MongoDB using djongo “Array Model Field”

我正在嘗試使用“數組模型字段”(djongo)添加數據,如Djongo文檔(數組模型字段)所示

from djongo import models

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    class Meta:
        abstract = True

class MetaData(models.Model):
    pub_date = models.DateField()
    mod_date = models.DateField()
    n_pingbacks = models.IntegerField()
    rating = models.IntegerField()

    class Meta:
        abstract = True

class Author(models.Model):
    name = models.CharField(max_length=200)
    email = models.EmailField()

    class Meta:
        abstract = True

    def __str__(self):
        return self.name

class Entry(models.Model):
    blog = models.EmbeddedModelField(
        model_container=Blog,
    )
    meta_data = models.EmbeddedModelField(
        model_container=MetaData,
    )

    headline = models.CharField(max_length=255)
    body_text = models.TextField()

    authors = models.ArrayModelField(
        model_container=Author,
    )
    n_comments = models.IntegerField()

    def __str__(self):
        return self.headline

我添加到admin.py中,用於在管理面板中注冊模型

from django.contrib import admin
from .models import Entry

admin.site.register(Entry)

當我嘗試通過http:// localhost:8000 / admin /添加數據時,出現了MigrationError ...

我的錯誤在哪里? 我不明白什么?

我很傻 對不起 更新模型后,我沒有“ makemigration”。

因此,這就是我要做的工作:1.更新模型后,我執行了“ python manage.py makemigrations”並打開了電源。

您應該在所有模型上使用models.ObjectIdField()以避免調用django遷移。

例:

class Author(models.Model):
    _id = models.ObjectIdField()
    name = models.CharField(max_length=200)
    email = models.EmailField()

class Meta:
    abstract = True

def __str__(self):
    return self.name

Djongo文檔中查看更多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM