E11000 дубликат ошибок ключа в PyMongo - PullRequest
0 голосов
/ 02 марта 2020

Я занимаюсь разработкой своего приложения с помощью Djna go и для базы данных mon go db. В основном это платформа для подписки. Во 2-й раз при покупке подписки ошибка выдачи.

В модели заказа у меня есть:

class Order(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    ref_code = models.CharField(max_length=20, blank=True, null=True)
    subscriptions = models.ManyToManyField(OrderSubscription)
    start_date = models.DateTimeField(auto_now_add=True)
    ordered_date = models.DateTimeField()
    ordered = models.BooleanField(default=False)
    amount =  models.FloatField()
    billing_address = models.ForeignKey(
        'Address', related_name='billing_address', on_delete=models.SET_NULL, blank=True, null=True)
    payment = models.ForeignKey(
        'Payment', on_delete=models.SET_NULL, blank=True, null=True)
    coupon = models.ForeignKey(
        'Coupon', on_delete=models.SET_NULL, blank=True, null=True)
    being_delivered = models.BooleanField(default=False)
    received = models.BooleanField(default=False)
    refund_requested = models.BooleanField(default=False)
    refund_granted = models.BooleanField(default=False)

Когда кто-то принес подписку и хочет снова купить другую подписку Sub, ошибка выдачи дублирующего ключа, где его создание другой таблицы заказов с тем же пользователем.

def finalcheckout(request):
    if request.method == "POST":
        subscription = get_object_or_404(Subscription, slug = request.POST.get("sub_slug"))
        order_subscription, created = OrderSubscription.objects.get_or_create(
        subscription=subscription,
        user=request.user,
        ordered=False
         )
        order = Order.objects.create(user=request.user)
        order.subscriptions.add(order_subscription)
        messages.info(request, "This subscription was added to your cart.")
        return redirect("core:order-summary")

Ошибка:

Параметры: [2, Нет, datetime.datetime (2020, 3, 2, 12, 26, 53, 481937), Нет, Ложь, Нет, Нет, Нет, Нет, Нет, Ложь, Ложь, Ложь, Ложь] Pymon go error: {'writeErrors': [{'index': 0, 'code': 11000, 'keyPattern': {'backup_id': 1}, 'keyValue': {'backup_id': None}, 'errmsg': 'E11000 коллекция повторяющихся ошибок ключа: hostmanager.subscription_order index: subscription_order_backup_id_79d0cc4e_uniq dup ключ: {backup_id: null}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...