【问题标题】:Django ExchangeDjango 交易所
【发布时间】:2020-09-05 16:09:34
【问题描述】:

我正在尝试为使用 djongo 的项目开发交换应用程序。 当我尝试添加新订单时,这是 django 返回的内容: image of the error

我写的代码是:

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


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(default=0.0)
    quantity = models.FloatField(default=0.0)

很抱歉这个问题,但我不明白为什么它向我显示该错误,当我尝试添加新配置文件时一切正常,但当我尝试添加新订单时它不起作用。

【问题讨论】:

  • 使用下划线开头的字段会导致 ForeignKeys 出现问题。顺便说一句,不要将其命名为 id,这是默认的主键。
  • 还是不行,即使改了字段名。

标签: python django mongodb djongo


【解决方案1】:

使 Id 字段成为主要字段,

试试这个

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


class Order(models.Model):
    _id = ObjectIdField(primary_key=True, editable=False)
    profile = models.ForeignKey(Profile, on_delete=models.CASCADE)
    datetime = models.DateTimeField(auto_now_add=True)
    price = models.FloatField(default=0.0)
    quantity = models.FloatField(default=0.0)

【讨论】:

  • 同样的问题,没有任何变化
猜你喜欢
  • 1970-01-01
  • 2017-04-08
  • 2014-12-23
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
相关资源
最近更新 更多