I am trying to achieve an order system for an e-commerce site with Django. I have Order Model and OrderItem Model as such
class OrderItem(models.Model):
    product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
    is_ordered = models.BooleanField(default=False)
    owner = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    date_added = models.DateTimeField(auto_now=True)
    date_ordered = models.DateTimeField(null = True)
    def __str__(self):
        return self.product.name
class Order(models.Model):
    ref_code = models.UUIDField(default=uuid.uuid4, editable=False)
    items = models.ManyToManyField(OrderItem)
    owner = models.ForeignKey(Profile, on_delete=models.SET_NULL, null=True)
    is_ordered = models.BooleanField(default=True)
    date_ordered = models.DateTimeField(auto_now=True)
    shipping = models.ForeignKey(AddressAndInfo, on_delete=models.SET_NULL, null=True)
    is_shipped = models.BooleanField(default=False)
    price = models.FloatField(default=0.0)
And My view function is such:
def checkout(request):
order_items = OrderItem.objects.filter(
    owner=request.user).filter(is_ordered=False).all()
address = AddressAndInfo.objects.filter(user=request.user).get()
if(order_items.count() > 0):
    total = 0
    for item in OrderItem.objects.filter(owner=request.user).filter(is_ordered=False).all():
        if item.product.discounted_price > 0:
            total = total + item.product.discounted_price
        else:
            total = total + item.product.price
    order = Order.objects.create(
        owner = Profile.objects.get(user= request.user.id),
        shipping = address,
        price = total
    )
    new = Order.objects.get(items = None)
    print(new.ref_code)
    new.items.add(OrderItem.objects.get(owner=request.user, is_ordered=False))
    for item in order_items:
        item.is_ordered = True
        item.save()
    return redirect('dash')
else:
    messages.success(request, 'No item in Cart')
    return redirect('index')
Now the problem here is that when I try to add the second order from the user it adds order-item from the second order to all the existing order and. The result is that all the orders have same order-items. when ever I try to add order new order the order-item from the new order gets added to all existing orders.
 
     
    