IntegrityError at UNIQUE constraint failed: sales_salesitem.product_id django

Привет всем и каждому! Я застрял в одной точке и получаю ошибку: IntegrityError at /meet/report_meeting/sales_person/1/customer/1/product/1/meeting_request/1/ UNIQUE constraint failed: sales_salesitem.product_id

Я получаю эту ошибку при попытке использовать метод create() в следующем фрагменте, как показано ниже:

def report_meeting(request, product_id, customer_id, sales_person_id, request_id):

form = ReportMeetingForm()
sales_person = Sales_person_profile.objects.get(id=sales_person_id)
customer = Customer_profile.objects.get(id=customer_id)
product_under_discussion = Product.objects.get(id=product_id)


if request.method == "POST":
    form = ReportMeetingForm(request.POST)
    if form.is_valid():
        
        instance = form.save(commit=False)
        instance.sales_person = sales_person
        instance.customer = customer
        instance.product_under_discussion = product_under_discussion
        sales_person.consulted_cases += 1
        
        cd = form.cleaned_data
        if cd['sale_closed'] == False and cd['follow_up'] == True:
            instance.number_of_follow_ups += 1
            instance.save()
        elif cd['sale_closed'] == True and cd['follow_up'] == False:
            sales_person.sales_completed += 1

            instance.save()

            sales_item = SalesItem.objects.create(
                    product= product_under_discussion,
                    meeting= instance,
                    quanity= cache.get('quantity')
                )

    else:
        print(form.errors)
    return redirect("accounts:dashboard")
else:
    form = ReportMeetingForm()  
context = {
    'form': form,
}   
return render(request, 'chat/report_meeting.html', context) 

Теперь самое интересное, я думаю, что экземпляр сохраняется безупречно, что означает, что product_under_discussion имеет объект продукта. Но когда то же самое передается в метод create, он выдает ошибку.

По моему опыту, эта ошибка будет возникать, если я не передаю экземпляр Product. Возможно, я где-то ошибаюсь в своей концепции. В любом случае, это модель SalesItem:

class SalesItem(models.Model):

product = models.OneToOneField(Product, on_delete=models.CASCADE, related_name='sale_item')
meeting = models.ForeignKey(Meeting, on_delete=models.CASCADE, related_name='sale_items')
unit_sale_price = models.CharField(max_length=50, null=True, blank=True)
unit_production_price = models.CharField(max_length=50, null=True, blank=True)
get_cost_sale_price = models.FloatField(null=True, blank=True)
get_cost_production_price = models.FloatField()
profit = models.CharField(max_length=50)
profit_percentage = models.CharField(max_length=50)
quanity = models.SmallIntegerField(default=1)
sales_agent_cut = models.CharField(max_length=50, null=True) # 10% of profit


def save(self, *args, **kwargs):

    self.unit_sale_price = self.product.sale_price
    self.unit_production_price = self.product.production_price
    self.get_cost_sale_price = self.quanity * float(self.unit_sale_price)
    self.get_cost_production_price = self.quanity * float(self.unit_production_price)
    self.profit = self.get_cost_sale_price - self.get_cost_production_price
    self.profit_percentage = str((self.get_cost_sale_price/self.get_cost_production_price) * 100) + str('%')
    self.sales_agent_cut = str(float(self.profit) * 0.1) + ' USD'
    super(SalesItem, self).save(*args, **kwargs)

Помогите пожалуйста!!!

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