Djangi : django.core.exceptions.FieldError: Невозможно преобразовать ключевое слово 'email' в поле

** У меня такие ошибки, пожалуйста, помогите мне. django.core.exceptions.FieldError: Cannot resolve keyword 'email' into field. Варианты: auth_token, created_at, id, is_verified, nama, order, pengiriman, user, user_id

view.py

def processOrder(request):
    id_transaksi = datetime.datetime.now().timestamp()
    data = json.loads(request.body)

    if request.user.is_authenticated:
        customer        = request.user.profile
        order, created  = Order.objects.get_or_create(user=customer, selesai=False)
        
    else:
        customer, order = gusetOrder(request, data)
        
    total = float(data['form']['total'])
    order.id_transaksi = id_transaksi

    if total == order.get_cart_total:
            order.selesai = True
    order.save()

    if order.shipping == True:
           Pengiriman.objects.create(
               user=customer,
               order=order,
               alamat=data['shipping']['address'],
               kota =data['shipping']['city'],
               provinsi=data['shipping']['state'],
               kode=data['shipping']['zipcode'],
           )
    return JsonResponse('Payment complete', safe=False)

checkout.html

function submitFormData(){
                console.log('Payment button clicked')

                var userFormData = {
                    'name':null,
                    'email':null,
                    'total':total,
                }

                var shippingInfo = {
                    'address':null,
                    'city':null,
                    'state':null,
                    'zipcode':null,
                }

                if (shipping != 'False'){
                    shippingInfo.address = form.address.value
                    shippingInfo.city = form.city.value
                    shippingInfo.state = form.state.value
                    shippingInfo.zipcode = form.zipcode.value
                }

                if (userau == 'False'){
                    userFormData.name = form.name.value
                    userFormData.email = form.email.value
                }

                console.log('Shipping Info:', shippingInfo)
                console.log('User Info:', userFormData)
                
                var url = "/process_Order"
                fetch(url, {
                    method:'POST',
                    headers:{
                        'Content-Type':'applicaiton/json',
                        'X-CSRFToken':csrftoken,
                    }, 
                    body:JSON.stringify({'form':userFormData, 'shipping':shippingInfo}),
                    
                })
                .then((response) => response.json())
                .then((data) => {
                    console.log('Success:', data);
                    alert('Transaction completed');  

                    cart = {}
                    document.cookie ='cart=' + JSON.stringify(cart) + ";domain=;path=/"

                    window.location.href = "{% url 'store' %}"

                })
            }

base.html

function getToken(name) {
    let cookieValue = null;
    if (document.cookie && document.cookie !== '') {
        const cookies = document.cookie.split(';');
        for (let i = 0; i < cookies.length; i++) {
            const cookie = cookies[i].trim();
            // Does this cookie string begin with the name we want?
            if (cookie.substring(0, name.length + 1) === (name + '=')) {
                cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                break;
                }
            }
        }
        return cookieValue;
    }
    const csrftoken = getToken('csrftoken');
trouble picture enter image description here

models.py

class Profile(models.Model):
    user        = models.OneToOneField(User,on_delete=models.CASCADE, blank=True, null=True)
    nama        = models.CharField(max_length=200, null=True)
    auth_token  = models.CharField(max_length=100)
    is_verified = models.BooleanField(default=False)
    created_at  = models.DateField(auto_now_add=True)
 
    def __str__(self):
        return self.user.username

class Product(models.Model):
    name        = models.CharField(max_length=200, null=True)
    harga       = models.DecimalField(max_digits=12, decimal_places=3)
    digital     = models.BooleanField(default=False, null=True, blank=True)
    jumlah      = models.IntegerField(default=0)
    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):
    user        = models.ForeignKey(Profile, on_delete=models.SET_NULL, blank=True, null=True)
    order_data  = models.DateTimeField(auto_now_add=True)
    selesai     = models.BooleanField(default=False, blank=True, null=True)
    id_transaksi = models.CharField(max_length=200, null=True) 

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

utils.py

def gusetOrder(request, data):
    print("User is not logged in")

    print('COOKIES:', request.COOKIES)
    name = data['form']['name']
    email = data['form']['email']

    cookieData = cookieCart(request)
    items = cookieData['items']

    customer, created = Profile.objects.get_or_create(
        email=email,
        is_verified=True,
        auth_token="null",
    )
    customer.name = name
    customer.save()

    order = Order.objects.create(
        user=customer,
        selesai=False,
    )

    for item in items:
        product = Product.objects.get(id=item['product']['id'])

        orderItem = OrderItem.objects.create(
            product=product,
            order=order,
            quantity=item['quantity']
        )

    return customer, order

Email отсутствует в модели вашего профиля, поэтому вы получаете ошибку. Если вы хотите создать объект filter user object и с его помощью создать или получить клиента

customer, created = Profile.objects.get_or_create(
            email=email,  # getting error here.
            is_verified=True,
            auth_token="null",
        )


class Profile(models.Model):
    user        = models.OneToOneField(User,on_delete=models.CASCADE, blank=True, null=True)
    nama        = models.CharField(max_length=200, null=True)
    auth_token  = models.CharField(max_length=100)
    is_verified = models.BooleanField(default=False)
    created_at  = models.DateField(auto_now_add=True)
 
    def __str__(self):
        return self.user.username

Решение

user = User.objects.filter(email=email).first()

customer, created = Profile.objects.get_or_create(
        user=user,
        is_verified=True,
        auth_token="null",
    )
Вернуться на верх