【发布时间】:2026-02-11 07:50:02
【问题描述】:
我在我的 Django 项目中使用 MongoDB 的 Djongo 引擎。
我有两张桌子
# app/models.py
# My Main Table
class Questions(models.Model):
questionId = models.UUIDField(default=uuid.uuid4, editable=True, unique=True)
question = models.TextField()
answer = models.EmbeddedField(
model_container=Answers
)
date = models.DateTimeField(auto_now_add=True, blank=True)
User = models.ForeignKey(UserDetailTable,on_delete=models.CASCADE,related_name='userinfo')
和
# app/models.py
# This table needs to be Embedded in Questions Table
class Answers(models.Model):
answerId = models.UUIDField(default=uuid.uuid4, editable=True, unique=True)
answer = models.TextField()
date = models.DateTimeField(auto_now_add=True)
User = models.ForeignKey(UserDetailTable,on_delete=models.CASCADE)
class Meta:
abstract = True
我想在Questions 表中嵌入Answers。
但是我收到了这个错误
django.core.exceptions.ValidationError: ['Field "App.Answers.User" of model container:"<class \'App.models.Answers\'>" cannot be of type "<class \'django.db.models.fields.related.ForeignKey\'>"']
我知道这个错误是因为我在 Answers 中使用了 User = models.ForeignKey(UserDetailTable,on_delete=models.CASCADE),它本身就是 Questions 上的 EmbeddedField。
我该如何解决这个错误?
由于同一问题会有来自不同用户的多个答案,并且使用 ForeignKey 可以很容易地显示用户的信息以及他/她的答案。
我也查看了 djongo 的文档,但找不到任何东西。
任何帮助将不胜感激。
【问题讨论】:
标签: python django django-models foreign-keys djongo