Почему это происходит AttributeError: объект 'User' не имеет атрибута 'cusromer'

почему возникает эта ошибка я не могу понять .Я создаю сайт электронной коммерции, где клиент может добавить товар в корзину и купить его # .Я ищу все, но не получаю правильный ответ, который может удалить это, пожалуйста, помогите мне решить эту проблему

показывается, что у объекта 'User' нет атрибута 'Customer' и Customer = request.user.Customer
. следовательно, проблема в слове customer или в чем-то другом .

models.py

    from django.db import models
    from django.contrib.auth.models import User
    from django.db.models.fields.related import OneToOneField


    class Customer(models.Model):
        user = OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
        name = models.CharField(max_length=400, null=True)
        email = models.EmailField(max_length=254)

     def __str__(self):
       return self.name


    class products(models.Model):
       name = models.CharField(max_length=500, null=True)
       price = models.FloatField()
       degital = models.BooleanField(default=False, null=True, blank=False)
       image = models.ImageField(null=True,blank=True)

       def __str__(self):
         return self.name
      @property
      def imageURL(self):
        try:
           url =self.image.url
        except:
           url =''
        return url


   class Order(models.Model):
       customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, null=True, 
       blank=True)
       date_ordered = models.DateTimeField(auto_now_add=True)
       complete = models.BooleanField(default=False, null=True, blank=False)
       transaction_id = models.CharField(max_length=500, null=True)

   def __str__(self):
      return str(self.id)


  class Orderitem(models.Model):
      product = models.ForeignKey(products, on_delete=models.SET_NULL, null=True)
      order = models.ForeignKey(Order, on_delete=models.SET_NULL, null=True)
      quantity = models.IntegerField(default=0, null=True, blank=True)
      date_added = models.DateTimeField(auto_now_add=True)



 class shippingaddress(models.Model):
      customer = models.ForeignKey(
      Customer, on_delete=models.SET_NULL, null=True, blank=True
      )
      order = models.ForeignKey(Order, on_delete=models.SET_NULL, null=True, 
      blank=True)
      address = models.CharField(max_length=500, null=True)
     city = models.CharField(max_length=500, null=True)
     state = models.CharField(max_length=500, null=True)
     zipcode = models.CharField(max_length=500, null=True)
     date_added = models.DateTimeField(auto_now_add=True)


    def __str__(self):
       return self.address

views.py

     def store(request):
          product = products.objects.all()
          context ={'product':product}
          return render(request,'basic_app/store.html',context)


    def 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:
            items = []
          context ={'items':items}
          return render(request,'basic_app/cart.html',context)

    def checkout(request):
        context ={}
        return render(request,'basic_app/checkout.html',context)

cart.html

   {% for item in items %}
        <div class="cart-row">
            <div style="flex:2"><img class="row-image" width="110" height="60" src=" 
            {{item.product.imageURL}}"></div>
            <div style="flex:2">
                <p>{{item.product.name}}</p>
            </div>
            <div style="flex:1">
                <p>${{item.product.price|floteformat:2}}</p>
            </div>
            <div style="flex:1">
                <p class="quantity">{{item.quantity}}</p>
                <div class="quantity">
                    <img class="chg-quantity" src="{% static  'img/^.png' %}">

                    <img class="chg-quantity" src="{% static  'img/V.png' %}">
                </div>
            </div>
            <div style="flex:1">
                <p>$32</p>
            </div>
    {% endfor %}

Здесь ваша проблема вытекает из Customer = request.user.Customer, Поэтому лучшим способом будет !

  def cart(request):
          if request.user.is_authenticated:
               customer = request.user
               order, created = Order.objects.get_or_create(customer = 
               customer,complete=False)
               items = order.orderitem_set.all()
          else:
            items = []
          context ={'items':items}
          return render(request,'basic_app/cart.html',context)
Вернуться на верх