Django MongoDB ListField 无法保存或更新

0 投票
1 回答
1108 浏览
提问于 2025-04-17 18:12

我正在用Django和MongoDB创建一个网页应用。现在一切都很好,我创建了一个模型并把它保存到了数据库里。接下来,我用“Class.objects.get()”从数据库中获取我需要的对象,其中有一个字段叫“media”,它是一个列表类型的字段。我尝试了以下两种方法:

Concert.media.append(list)

或者

Concert.media.extend(list)

然后

Concert.save()

这是我在models.py中定义的“Concert”对象:

class Concert(models.Model):
main_artist = models.CharField(max_length=50)
concert_id = models.AutoField(primary_key=True)
openers = ListField(EmbeddedModelField('Opener'))
concert_date = models.DateField()
slug = models.SlugField(unique=True)
media = ListField()

但是当我查看结果时,对象并没有更新。没有保存任何值。如果有人能帮我,我会非常感激,给你一个虚拟的拳头碰拳头。

1 个回答

1

Concert 是一个类,而不是一个实例。你不能直接保存一个类。你需要先创建这个类的一个实例,然后再保存这个实例。就像下面这样:

c = Concert()
c.media.append(list)
c.save()

顺便提一下,list 这个变量名不好,因为在 Python 中,list 是一个类型。尽量不要用类型作为变量名(虽然大家都曾经犯过这个错误,包括我自己)。

撰写回答