Я работаю над проектом электронной коммерции на mysql и django, и во время функции добавления в корзину я не могу понять, где проблема...?


я не могу понять, где проблема...


Вот такая ошибка произошла

*

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/cart/

Django Version: 3.2.7
Python Version: 3.8.10
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'myapp.apps.MyappConfig',
 'crispy_forms']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback (most recent call last):
  File "/home/akshay/Django/my_env/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/home/akshay/Django/my_env/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/akshay/Django/my_env/lib/python3.8/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/home/akshay/Django/Frooty/myapp/views.py", line 61, in add_cart
    customer = request.user.customer
  File "/home/akshay/Django/my_env/lib/python3.8/site-packages/django/utils/functional.py", line 247, in inner
    return func(self._wrapped, *args)
  File "/home/akshay/Django/my_env/lib/python3.8/site-packages/django/db/models/fields/related_descriptors.py", line 421, in __get__
    raise self.RelatedObjectDoesNotExist(

Exception Type: RelatedObjectDoesNotExist at /cart/
Exception Value: User has no customer.


Это мой models.py

from django.db import models
from django.contrib.auth.models import AbstractUser,User


class Customer(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
    name =  models.CharField(max_length=200, null=True)
    email = models.CharField(max_length=200, null=True)
    
    def __str__(self):
        return self.name

Это мой views.py

@login_required
def add_cart(request):
    if request.user.is_authenticated :
        customer = request.user.customer
        order,created = Order.objects.get_or_create(customer=customer, complete=False)
        items = order.orderitem_set.all()
    else:
        item = []
        
    context = {'items':items}
    return render(request,'store/cart.html', context)

Это мой forms.py

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User


# Create your forms here.

class NewUserForm(UserCreationForm):
    email = forms.EmailField()
    

    class Meta:
        model = User
        fields = ("username", "email", "password1", "password2")

        

**

я нахожу способ заставить функцию корзины работать, но не могу понять в чем проблема, я использую систему аутентификации django с AbsractUser и пытаюсь сопоставить это с моделью клиента. может ли кто-нибудь помочь ....?

**

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