Django:将具有ForeignKey关系的模型实例保存到数据库的问题

雷莫

我想使用Django创建和保存模型实例。这些是我的模型:

class Customer(models.Model):
id = models.IntegerField(primary_key=True, unique=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
...

class Order(models.Model):
    id = models.IntegerField(primary_key=True, unique=True)
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
    comment = models.TextField()
...

我创建这样的订单:

def store_storage_space_order(cleaned_data):
    try:
        user = User.objects.create_user(
            cleaned_data["customer_email"],
            cleaned_data["customer_email"],
            1234
        )

    customer = Customer.objects.create(
        user=user,
        first_name=cleaned_data["customer_firstname"],
        last_name=cleaned_data["customer_lastname"],
        email=cleaned_data["customer_email"],
        phone_number=cleaned_data["customer_phone"]
    )

    StorageSpaceOrder.objects.create(
        customer=customer,
        order_price=Decimal(cleaned_data["order_price"])
    )

except Exception as exc:
    logger.exception("Couldn't store any order information", exc, cleaned_data)

据我了解,Django也会在调用create时保存该对象。

尝试保存订单时,出现以下错误消息:

save() prohibited to prevent data loss due to unsaved related customer

我没有得到的 客户已经在那里并保存在数据库中。两者之间的客户没有任何变化。

另外,我尝试过customer_id=customer.id/pk,-但是ID和PK都返回None。

为什么会这样,我需要更改什么?再次加载对象不是首选方法,因为我只有将其标记为唯一的ID。

感谢您的输入 :)

雷莫

ID字段必须由Django自动生成,因此您无需在模型中声明它们。

如果这样做,您将覆盖创建/保存此模型的实例时调用的默认行为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将记录保存到Lightswitch.ApplicationData并具有与单独数据库的关系

来自分类Dev

Django将json值保存到数据库/模型

来自分类Dev

将实例保存到数据库

来自分类Dev

将实例保存到数据库

来自分类Dev

Django 没有将表单保存到数据库

来自分类Dev

将模型数据保存到数据库

来自分类Dev

将模型数据保存到数据库

来自分类Dev

Django模型无法实时将数据持久保存到数据库

来自分类Dev

Django模型阻止保存到数据库

来自分类Dev

在将实例保存到数据库之前/之后是否触发了Django post_save?

来自分类Dev

Yii2将模型保存到数据库

来自分类Dev

laravel-将新模型保存到数据库

来自分类Dev

Yii2将模型保存到数据库

来自分类Dev

将 keras 模型保存到数据库

来自分类Dev

如何将Django模型保存到数据库?save()方法不起作用

来自分类Dev

Django模型表单未将所有字段保存到数据库

来自分类Dev

在django rest框架中保存与数据库有多对多关系的django模型

来自分类Dev

空值导致将问题保存到数据库

来自分类Dev

Django将数据保存到数据库

来自分类Dev

将多条记录保存到具有多于1个表行的数据库中

来自分类Dev

将多条记录保存到具有多于1个表行的数据库中

来自分类Dev

如何将值保存到具有相关字段类型的数据库中?

来自分类Dev

Django ModelForm没有将数据保存到数据库

来自分类Dev

CakePHP没有将数据保存到数据库

来自分类Dev

Django将图像路径保存到数据库

来自分类Dev

无法使用 django 将图像保存到数据库

来自分类Dev

Django:检查实例是否存在于用户数据库中并保存到App模型数据库中

来自分类Dev

将数据保存到数据库

来自分类Dev

将数据保存到数据库

Related 相关文章

热门标签

归档