【问题标题】:Django: Save auth_user to model with Foreign KeyDjango:使用外键保存 auth_user 模型
【发布时间】: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


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 2012-08-04
      • 1970-01-01
      • 2015-10-11
      • 2013-06-26
      • 2015-12-21
      • 2013-04-10
      • 1970-01-01
      • 2018-10-21
      • 2011-04-26
      相关资源
      最近更新 更多