Как мне запросить пользователя и сохранить его в поле Foreignkey модели

Я уже некоторое время занимаюсь этим, но не могу найти способ установить 'customer' в поле foreignkey модели 'ShippingAddress', как мне запросить поле customer, чтобы вместе с данными о доставке через форму, клиент сохранялся и в поле foreignkey. заранее спасибо!

**models.py**

class Customer(models.Model):
    user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, blank=True, null=True)
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    email = models.EmailField(max_length=150)

class ShippingAddress(models.Model):
    customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, blank=True, null=True)
    address_one = models.CharField(max_length=200)
    address_two = models.CharField(max_length=200)
    ...

**views.py**

def checkout(request):
    if request.method == 'POST':
        form = ShippingForm(request.POST)
        customer = request.user.customer
        if form.is_valid():

            # how to get the customer and send it back to the shippingmodel form
            user = ShippingAddress.objects.get(customer=customer)

            form.save()
            return redirect('store:checkout_shipping')
        else:
            form = ShippingForm()

    else:
        form = ShippingForm()

    context = {"form": form}
    return render(request, 'store/checkout.html', context)      
ShippingAddress.objects.get(customer=customer)

Возвращается ShippingAddress, но

    user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, blank=True, null=True)

требует наличия CustomUser. Они несовместимы, поэтому их нельзя назначать.

Но вы уже получаете пользователя:

customer = request.user.customer

Просто немного уменьшите это:

user = request.user

теперь у вас есть объект пользователя.

Я предполагаю, что вы правильно настроили класс CustomUser в настройках Django.

Вернуться на верх