Получать и показывать cookies для бэкенд-модели пользователя -- django
Я хочу, чтобы куки отображались в модели пользователя Admin, данные клиента находились в секции куки, и когда клиент входит в систему, Django запрашивает куки у учетной записи аутентификации пользователя.
Имя моего Cookie - 'device', я могу использовать его для гостевого пользователя, но я не знаю, как отправить его в бэкенд, а django просит меня об этом.
Ошибка :
Field 'id' expected a number but got ''.
Моя пользовательская модель пользователя:
class Account(AbstractBaseUser):
phone_number = models.CharField(unique=True, max_length=11, validators=[MinLengthValidator(11)])
device = models.CharField(max_length=200, blank=True)
USERNAME_FIELD = 'phone_number'
models.py:
class Customer(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, blank=True, null=True)
# Get COOKIE For guest user -- I set a cookie as device
device = models.CharField(max_length=200, blank=True)
views.py: Ошибка приходит отсюда
def Add_To_Cart(request, pk):
if request.user.is_authenticated:
"""" Error comes from here, i have no idea how to call
cookie to user authentication backend."""
customer = request.user.device <<--
item = get_object_or_404(Post, pk=pk)
order_item, created = OrderPost.objects.get_or_create(
item=item,
user=customer,
ordered = False
)
order_qs = Order.objects.filter(user=customer, ordered=False)
if order_qs.exists():
order = order_qs[0]
# check if the order post is in the order
if order.items.filter(item__pk=item.pk).exists():
order_item.qunatity += 1
order_item.save()
messages.info(request, "this item just added to your cart")
return redirect('article-detail', pk=pk)
else:
order.items.add(order_item)
messages.info(request, "this item just added to your cart")
return redirect('article-detail', pk=pk)
else:
ordered_date = timezone.now()
order = Order.objects.create(user=customer, ordered_date=ordered_date)
order.items.add(order_item)
messages.info(request, "this item just added to your cart")
return redirect('article-detail', pk=pk)
else:
item = get_object_or_404(Post, pk=pk)
# here i can create an account for guest user
device = request.COOKIES['device'] <<--
customer, created = Customer.objects.get_or_create(device=device)
order_item, created = OrderPost.objects.get_or_create(
item=item,
user=customer,
ordered = False
)
order_qs = Order.objects.filter(user=customer, ordered=False)
if order_qs.exists():
order = order_qs[0]
# check if the order post is in the order
if order.items.filter(item__pk=item.pk).exists():
order_item.qunatity += 1
order_item.save()
messages.info(request, "this item just added to your cart")
return redirect('article-detail', pk=pk)
else:
order.items.add(order_item)
messages.info(request, "this item just added to your cart")
return redirect('article-detail', pk=pk)
else:
ordered_date = timezone.now()
order = Order.objects.create(user=customer, ordered_date=ordered_date)
order.items.add(order_item)
messages.info(request, "this item just added to your cart")
return redirect('article-detail', pk=pk)