【发布时间】:2020-11-09 19:36:56
【问题描述】:
场景如下:
我有一个 Django 表单,它向后端发送一个发布请求。使用这些数据,我创建了我的订单模型的一个实例。一个订单可以有一个客户,而一个客户可以有一个 auth_user。数据库是 SQLite。关系如下所示:
class Order(models.Model):
customer = models.ForeignKey(Customer, on_delete=models.RESTRICT)
class Customer(models.Model):
email = models.CharField(max_length=MAX_TEXT_LENGTH)
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
我设法保存了所有这些,订单和客户在数据库中正确相关。尽管我在将用户保存给客户时以某种方式失败了。我将它们保存在我的 view.py 中:
with transaction.atomic():
# create customer & order
customer = create_customer(first_name, last_name, email, phone)
order = create_order(customer, form.cleaned_data)
# add additional stuff to order
order.additional_services.add(*form.cleaned_data['additional_service']),
order.save
# create user and update customer
plain_user_password = generatePassword(DEFAULT_PASSWORD_LENGTH)
user = create_user(order.id, email, plain_user_password, first_name, last_name)
customer.user = user
customer.save
我用Model.objects.create(...)创建我所有的模型
使用 order.id 作为用户名是给定的,不能更改。最后两行似乎不起作用,虽然客户之后持有正确的 user_id(通过调试验证),但数据库表中的列为空......当我使用 try-catch 块时也没有发生异常......
我错过了什么?非常感谢任何帮助:)
【问题讨论】:
标签: django django-models