Hi, I am learning python by trying to create a small Django app. I may have found a bug related to Django and/or sqlite3. If you are stackoverflow folks then my initial post is there: https://stackoverflow.com/questions/49361834/integrityerror-exception-in-deleteview-cbv
My app really is just creating a small web site to add users and figure out how to do CRUD operations in building user profiles. I am using the following setup: Django Version: 2.0.3 Python Version: 3.6.3 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_extensions', 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', 'auditlog', 'widget_tweaks', 'Members.apps.MembersConfig'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'auditlog.middleware.AuditlogMiddleware'] I am using sqlite3 as the DB backend.. I can create the virgin project, tweak the settings file and do the initial "makemigrations" and "migrate". This, of course, creates the Django "user" table(s). I went about creating my own "profile" model that "extends" the User model by creating a "oneToOne" field that points back to User and specifies an "on_delete=models.CASCADE" clause: class Profile(models.Model): ... user = models.OneToOneField( User, on_delete=models.CASCADE, blank=False, null=False, ) ... The thing is the table that is created is given the constraint: FOREIGN KEY(`user_id`) REFERENCES `auth_user`(`id`) DEFERRABLE INITIALLY DEFERRED, but the "on delete cascade" clause is missing. I first noticed this when testing a profile delete operation. I get a foreign key constraint violation. Looking into that led me here to you guys. I have added that clause to the table: FOREIGN KEY(`user_id`) REFERENCES `auth_user`(`id`) on delete cascade DEFERRABLE INITIALLY DEFERRED, but I still get the constraint violation. I did more digging last night and see that at least one of the Django generated "user_*" tables also has a foreign key relationship back to the "user" table and that is also missing the cascade clause. My guesses at this instant include: - I have no idea what I am doing - Django or the sqlite3 backend *should* be handling the cascade ops internally -- but isn't What am I missing? -- 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/29eb69c4-8f01-4695-b72e-0914ff46422e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.