Saturday, December 19, 2020

Re: django.db.utils.IntegrityError: null value in column "user_id" violates not-null constraint

I got the answer from StackOverflow https://stackoverflow.com/a/65377458/13588941

On Sunday, 20 December 2020 at 09:39:43 UTC+5:30 Sai Maruthi wrote:
This is the full error.

Internal Server Error: /ticket/create
Traceback (most recent call last):
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.NotNullViolation: null value in column "user_id" violates not-null constraint
DETAIL:  Failing row contains (38, 18, null).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "C:\Users\Sai Maruthi\Documents\Dev\lappy\src\accounts\decorators.py", line 20, in wrapper_func
    return view_func(request, *args, **kwargs)
  File "C:\Users\Sai Maruthi\Documents\Dev\lappy\src\tickets\views.py", line 61, in customer_ticket_create
    Invoice.objects.create(
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\query.py", line 447, in create
    obj.save(force_insert=True, using=self.db)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\base.py", line 753, in save
    self.save_base(using=using, force_insert=force_insert,
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\base.py", line 801, in save_base
    post_save.send(
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\dispatch\dispatcher.py", line 177, in send
    return [
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\dispatch\dispatcher.py", line 178, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "C:\Users\Sai Maruthi\Documents\Dev\lappy\src\invoices\signals.py", line 88, in invoice_update_notification
    notification.seen_by.set([ticket.customer, ticket.support, ticket.preparation, ticket.filing, ticket.fbar, ticket.itin, ticket.extra])
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\fields\related_descriptors.py", line 1015, in set
    self.add(*new_objs, through_defaults=through_defaults)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\fields\related_descriptors.py", line 950, in add
    self._add_items(
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\fields\related_descriptors.py", line 1130, in _add_items
    self.through._default_manager.using(db).bulk_create([
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\query.py", line 506, in bulk_create
    returned_columns = self._batched_insert(
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\query.py", line 1277, in _batched_insert
    self._insert(item, fields=fields, using=self.db, ignore_conflicts=ignore_conflicts)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\query.py", line 1254, in _insert
    return query.get_compiler(using=using).execute_sql(returning_fields)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\sql\compiler.py", line 1397, in execute_sql
    cursor.execute(sql, params)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\debug_toolbar\panels\sql\tracking.py", line 198, in execute
    return self._record(self.cursor.execute, sql, params)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\debug_toolbar\panels\sql\tracking.py", line 133, in _record
    return method(sql, params)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 98, in execute
    return super().execute(sql, params)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 66, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 75, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
django.db.utils.IntegrityError: null value in column "user_id" violates not-null constraint
DETAIL:  Failing row contains (38, 18, null).

ERROR 2020-12-20 09:04:24,130 log 12008 12324 Internal Server Error: /ticket/create
Traceback (most recent call last):
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.NotNullViolation: null value in column "user_id" violates not-null constraint
DETAIL:  Failing row contains (38, 18, null).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "C:\Users\Sai Maruthi\Documents\Dev\lappy\src\accounts\decorators.py", line 20, in wrapper_func
    return view_func(request, *args, **kwargs)
  File "C:\Users\Sai Maruthi\Documents\Dev\lappy\src\tickets\views.py", line 61, in customer_ticket_create
    Invoice.objects.create(
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\query.py", line 447, in create
    obj.save(force_insert=True, using=self.db)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\base.py", line 753, in save
    self.save_base(using=using, force_insert=force_insert,
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\base.py", line 801, in save_base
    post_save.send(
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\dispatch\dispatcher.py", line 177, in send
    return [
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\dispatch\dispatcher.py", line 178, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "C:\Users\Sai Maruthi\Documents\Dev\lappy\src\invoices\signals.py", line 88, in invoice_update_notification
    notification.seen_by.set([ticket.customer, ticket.support, ticket.preparation, ticket.filing, ticket.fbar, ticket.itin, ticket.extra])
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\fields\related_descriptors.py", line 1015, in set
    self.add(*new_objs, through_defaults=through_defaults)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\fields\related_descriptors.py", line 950, in add
    self._add_items(
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\fields\related_descriptors.py", line 1130, in _add_items
    self.through._default_manager.using(db).bulk_create([
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\query.py", line 506, in bulk_create
    returned_columns = self._batched_insert(
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\query.py", line 1277, in _batched_insert
    self._insert(item, fields=fields, using=self.db, ignore_conflicts=ignore_conflicts)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\query.py", line 1254, in _insert
    return query.get_compiler(using=using).execute_sql(returning_fields)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\models\sql\compiler.py", line 1397, in execute_sql
    cursor.execute(sql, params)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\debug_toolbar\panels\sql\tracking.py", line 198, in execute
    return self._record(self.cursor.execute, sql, params)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\debug_toolbar\panels\sql\tracking.py", line 133, in _record
    return method(sql, params)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 98, in execute
    return super().execute(sql, params)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 66, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 75, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "C:\Users\Sai Maruthi\.virtualenvs\lappy-FT-EdR8P\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
django.db.utils.IntegrityError: null value in column "user_id" violates not-null constraint
DETAIL:  Failing row contains (38, 18, null).

On Sunday, 20 December 2020 at 09:33:16 UTC+5:30 Sai Maruthi wrote:
Hello everyone,

I have created the following model in my Project.

User = settings.AUTH_USER_MODEL

Discount_Type=(
    ('$', '$'),
    ('%', '%'),
)

class Invoice(models.Model):
    ticket          = models.OneToOneField(Ticket,  related_name='invoice', blank=True,null=True, on_delete=models.CASCADE)
    updated_by      = models.ForeignKey(User, null=True, blank=True, related_name='invoice_editor', on_delete=models.SET_NULL)
    date_created    = models.DateTimeField(auto_now_add=True)
    date_updated    = models.DateTimeField(auto_now=True)
    is_paid        = models.BooleanField(default=False)
    
    federal_price = models.DecimalField(default=20.00, max_digits=6, decimal_places=2)
    federal_qty = models.PositiveIntegerField(default=1)
    federal_amount = models.DecimalField(null=True, blank=True, max_digits=6, decimal_places=2)
    state_price = models.DecimalField(default=20.00, max_digits=6, decimal_places=2)
    state_qty = models.PositiveIntegerField(default=1)
    state_amount = models.DecimalField(null=True, blank=True, max_digits=6, decimal_places=2)
    discount = models.DecimalField(default=0.00, max_digits=6, decimal_places=2)
    discount_type  = models.CharField(default='$', max_length=5, choices=Discount_Type)
    discount_value = models.DecimalField(null=True, blank=True, max_digits=6, decimal_places=2)
    amount_payable = models.DecimalField(null=True, blank=True, max_digits=6, decimal_places=2)

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

    class Meta:
        ordering = ['-date_updated']


class Ticket(models.Model):
    tax_year        = models.CharField(max_length=50, choices=Tax_Years, default='2020')
    service         = models.CharField(max_length=50, choices=Services, default='Tax Filing')
    description     = models.TextField(max_length=1000, blank=True)
    # Customer
    customer        = models.ForeignKey(User, related_name='ticket_customer', on_delete=models.CASCADE)

My forms.py

class TicketCreateForm(forms.ModelForm):
    class Meta:
        model = Ticket
        fields = ('tax_year', 'service', 'description',)
        widgets = {
          'tax_year': forms.Select(attrs={'class': 'form-control'}),
          'service': forms.Select(attrs={'class': 'form-control'}),
          'description': forms.Textarea(attrs={'rows':3, 'cols':60, 'class':'form-control'}),
        }


My Views.py

def customer_ticket_create(request):
    form = TicketCreateForm()
    if request.method == 'POST':
        form = TicketCreateForm(request.POST or None)
        if form.is_valid():
            ticket = form.save(commit=False)
            ticket.customer = request.user  
            ticket.save()
            Invoice.objects.create( ticket=ticket, updated_by=request.user)
            return redirect('customer_home')

But I'm getting  django.db.utils.IntegrityError: "user_id" violates not-null constraint.
This error is because of  Invoice.objects.create(ticket=ticket, updated_by=request.user)
Without this line, my view is working fine. Not sure why the view is not able to create Invoice. Can someone please help me.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/1ff87ce9-ccf4-45ad-bbe7-73aa9732401fn%40googlegroups.com.

No comments:

Post a Comment