gpt4 book ai didi

django - MongoDB 数据库。错误 "Select a valid choice. That choice is not one of the available choices."

转载 作者:行者123 更新时间:2023-12-04 08:17:40 26 4
gpt4 key购买 nike

我已经在我的 Django 项目中安装了 MongoDB。因为是我第一次使用 Mongo,我决定尝试一下它是如何工作的,我创建了一个简单的程序来存储数据(在我的例子中是价格和数量)。
该项目称为“exchange”,它有 2 个文件夹:exchange 和 app。
这是'app'文件夹中的文件models.py:

from django.db import models
from djongo.models.fields import ObjectIdField, Field
from django.contrib.auth.models import User

class Profile(models.Model):
_id = ObjectIdField()
user = models.ForeignKey(User, on_delete=models.CASCADE)

class Order(models.Model):
_id = ObjectIdField()
profile = models.ForeignKey(Profile, on_delete=models.CASCADE)
datetime = models.DateTimeField(auto_now_add=True)
price = models.FloatField()
quantity = models.FloatField()
#ips = models.Field(default=[])
#subprofiles = models.Field(default={})
这是文件 admin.py
from django.contrib import admin
from .models import *

admin.site.register(Profile)
admin.site.register(Order)
这就是我在交换文件夹的文件 settings.py 中设置数据库的方式
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'engine',
}
}
因此,在进行迁移并创建 super 用户之后,我运行服务器,进入管理部分而不是配置文件,我创建了一个配置文件,选择了唯一可用的选项(我的 super 用户)。
此时我在订单部分创建了一个订单:所以我在“配置文件”字段中选择了唯一可用的选项(之前创建的配置文件),然后我填写了其他 2 个字段(价格和数量),但是当我尝试保存它,在字段“配置文件”上方出现以下错误:
“选择一个有效的选择。该选择不是可用的选择之一。”
我无法理解我错在哪里。
在此先感谢您的帮助!

最佳答案

问题是ForeignKey默认附加 _id到属性名称。在你上面的例子中,它试图使用属性 user_id关于简介和 profile_id订购。
解决方案是将 ForeignKey 更新为:

profile = models.ForeignKey(Profile, db_column='profile', on_delete=models.CASCADE)
你改变了什么 db_column可能取决于您如何在 mongodb 中设置架构,但我收到了同样的错误并指向 db_column到正确的属性为我修复了它。

关于django - MongoDB 数据库。错误 "Select a valid choice. That choice is not one of the available choices.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65643818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com