I havent defined more than one primary key. If primary key is defined, the automatic field wouldnt be generated, right? Sincerely yours,
Joel G Mathew On Sat, 22 Dec 2018 at 16:13, Glen D souza <glenpo...@gmail.com> wrote: > if you check the error message > > DETAIL: Failing row contains (3, 1, Consultation OPD, 135, 135, null, 1). > > There are total of 7 values > > Check your model > > class CGHSRates(models.Model): > rid = models.AutoField(primary_key=True) > serial = models.IntegerField(default=0) > name = models.CharField(max_length=100) > NonNrate = models.FloatField(blank=True) > NABHrate = models.FloatField(blank=True) > section = models.ForeignKey('CGHSSection', on_delete=models.SET_NULL, null > =True, blank=True) > > There are total of 6 fields > > There can be only one Primary Key > > Somewhere due to rid field its going wrong > > On Sat, 22 Dec 2018 at 14:48, Joel Mathew <j...@joel.su> wrote: > >> Django - constraint error >> >> I have the following python code in django which is deployed on heroku: >> >> def newimportdb(request): >> import xlrd >> loc = ("./CGHS Rates 2014- Trivandrum.xlsx") >> wb = xlrd.open_workbook(loc) >> sheet = wb.sheet_by_index(0) >> for i in range(sheet.nrows): >> try: >> sl = int(sheet.cell_value(i, 0)) >> except: >> title = sheet.cell_value(i, 1) >> hd = CGHSSection(title = title) >> try: >> hd.save() >> heading = CGHSSection.objects.get(title = title) >> print(f"Saved new heading: {title}") >> continue >> except: >> print(f"Could not save new section: {title}. Maybe it existing. Reading >> it.") >> heading = CGHSSection.objects.get(title = title) >> continue >> >> test = sheet.cell_value(i, 1) >> nonnabh = int(sheet.cell_value(i, 2)) >> nabh = int(sheet.cell_value(i, 3)) >> print(f'{i} Test:{test} NonNABH:{nonnabh} NABH:{nabh} Under:{heading}') >> >> it = CGHSRates(serial = sl, name =test, NABHrate = nabh, NonNrate=nonnabh, >> section=heading) >> print(f"Value of section heading is {heading.title}") >> print(f'it = CGHSRates(serial = {sl}, name ={test}, NABHrate = {nabh}, >> NonNrate={nonnabh}, section={heading}') >> it.save() >> print("Saved") >> >> In my models, I have: >> >> from django.db import models >> class CGHSRates(models.Model): >> rid = models.AutoField(primary_key=True) >> serial = models.IntegerField(default=0) >> name = models.CharField(max_length=100) >> NonNrate = models.FloatField(blank=True) >> NABHrate = models.FloatField(blank=True) >> section = models.ForeignKey('CGHSSection', on_delete=models.SET_NULL, >> null=True, blank=True) >> >> class Meta: >> unique_together = ('name', 'NonNrate', 'NABHrate') >> >> class CGHSSection(models.Model): >> num = models.AutoField(primary_key=True) >> title = models.CharField(max_length=150, unique=True) >> >> On running the above, I get: >> >> [22/Dec/2018 09:07:55] "GET /favicon.ico/ HTTP/1.1" 404 3346 >> Could not save new section: UNCLASSIFIED. Maybe it existing. Reading it. >> 1 Test:Consultation OPD NonNABH:135 NABH:135 Under:CGHSSection object (1) >> Value of section heading is UNCLASSIFIED >> it = CGHSRates(serial = 1, name =Consultation OPD, NABHrate = 135, >> NonNrate=135, section=CGHSSection object (1) >> Internal Server Error: /app/import >> Traceback (most recent call last): >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/backends/utils.py", >> line 85, in _execute >> return self.cursor.execute(sql, params) >> psycopg2.IntegrityError: null value in column "section" violates not-null >> constraint >> DETAIL: Failing row contains (3, 1, Consultation OPD, 135, 135, null, 1). >> >> >> The above exception was the direct cause of the following exception: >> >> Traceback (most recent call last): >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", >> line 34, in inner >> response = get_response(request) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/core/handlers/base.py", >> line 126, in _get_response >> response = self.process_exception_by_middleware(e, request) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/core/handlers/base.py", >> line 124, in _get_response >> response = wrapped_callback(request, *callback_args, **callback_kwargs) >> File "/home/joel/peroorkada/app/views.py", line 134, in newimportdb >> it.save() >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/models/base.py", >> line 718, in save >> force_update=force_update, update_fields=update_fields) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/models/base.py", >> line 748, in save_base >> updated = self._save_table(raw, cls, force_insert, force_update, using, >> update_fields) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/models/base.py", >> line 831, in _save_table >> result = self._do_insert(cls._base_manager, using, fields, update_pk, >> raw) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/models/base.py", >> line 869, in _do_insert >> using=using, raw=raw) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/models/manager.py", >> line 82, in manager_method >> return getattr(self.get_queryset(), name)(*args, **kwargs) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/models/query.py", >> line 1136, in _insert >> return query.get_compiler(using=using).execute_sql(return_id) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py", >> line 1289, in execute_sql >> cursor.execute(sql, params) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/backends/utils.py", >> line 100, in execute >> return super().execute(sql, params) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/backends/utils.py", >> line 68, in execute >> return self._execute_with_wrappers(sql, params, many=False, executor=self >> ._execute) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/backends/utils.py", >> line 77, in _execute_with_wrappers >> return executor(sql, params, many, context) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/backends/utils.py", >> line 85, in _execute >> return self.cursor.execute(sql, params) >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/utils.py", >> line 89, in __exit__ >> raise dj_exc_value.with_traceback(traceback) from exc_value >> File >> "/home/joel/sampledjango/venv/lib/python3.6/site-packages/django/db/backends/utils.py", >> line 85, in _execute >> return self.cursor.execute(sql, params) >> django.db.utils.IntegrityError: null value in column "section" violates >> not-null constraint >> DETAIL: Failing row contains (3, 1, Consultation OPD, 135, 135, null, 1). >> >> I cant understand why this is happening. My print just before saving >> data shows that section is not null. However that seems to be the error I'm >> getting >> >> -- >> 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+unsubscr...@googlegroups.com. >> To post to this group, send email to django-users@googlegroups.com. >> Visit this group at https://groups.google.com/group/django-users. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/CAA%3Diw_8qa0H%3DBgzgnX_cP63CZaYfzXgnS8VdoMH9ZBLwF1w-YQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/django-users/CAA%3Diw_8qa0H%3DBgzgnX_cP63CZaYfzXgnS8VdoMH9ZBLwF1w-YQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- > 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+unsubscr...@googlegroups.com. > To post to this group, send email to django-users@googlegroups.com. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/CAHfehoX8POqSGSdEfN%2BrL01rQyiiBeYT50%3D%2BkgHoto0UzpW4DA%40mail.gmail.com > <https://groups.google.com/d/msgid/django-users/CAHfehoX8POqSGSdEfN%2BrL01rQyiiBeYT50%3D%2BkgHoto0UzpW4DA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAA%3Diw__n%2Bi5srWCA23aVdbbKvkHn9nY3e_K0VutYegLbjVVxug%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.