You can also temporarily remove django.contrib.auth from INSTALLED_APPS when making your migrations to keep the overlap from occurring as a test, although I'm not sure if that would be possible if any other code references the contrib User model and probably isn't recommended as a production deployment strategy.
-James On Dec 8, 2014 3:15 AM, "James Schneider" <[email protected]> wrote: > I have to wonder if the name of your class is causing an overlap with the > Django contrib model, which may be causing confusion with the migrations > process and not catching changes (since the core contrib version doesn't > have any changes). > > Would it be possible to change the name of the class, even for testing? > On Dec 8, 2014 3:07 AM, "Tobias Dacoir" <[email protected]> wrote: > >> Ok, here is part of the User Model: >> >> class User(AbstractBaseUser, PermissionsMixin): >> >> SEX = ( >> ('m', 'male'), >> ('f', 'female') >> ) >> >> RANG = ( >> ('b', 'beginner'), >> ('e', 'expert'), >> ('m', 'master') >> ) >> >> username = models.CharField(_('username'), max_length=30, unique=True >> , >> help_text=_('Required. 30 characters or >> fewer. Letters, numbers and @/./+/-/_ characters'), >> validators=[ >> validators.RegexValidator(re.compile( >> '^[\w.@+-]+$'), _('Enter a valid username.'), _('invalid')) >> ]) >> first_name = models.CharField(_('first name'), max_length=30, blank= >> True, null=True) >> last_name = models.CharField(_('last name'), max_length=30, blank= >> True, null=True) >> email = models.EmailField(_('email address'), max_length=255, unique= >> True) >> >> is_staff = models.BooleanField(_('staff status'), default=False, >> help_text=_('Designates whether the >> user can log into this admin site.')) >> >> is_active = models.BooleanField(_('active'), default=True, >> help_text=_('Designates whether this >> user should be treated as active. Unselect this instead of deleting >> accounts.')) >> date_joined = models.DateTimeField(_('date joined'), default=timezone >> .now) >> expires = models.DateTimeField(_('expiration date'), default= >> one_year_from_now) >> >> age = models.IntegerField(blank=True, null=True) >> sex = models.CharField(max_length=1, choices=SEX, blank=True) >> native_language = models.CharField(max_length=200, blank=True) >> english_proficiency = models.CharField(max_length=100, blank=True) >> audio_device = models.CharField(max_length=200, blank=True) >> autoplay_enabled = models.BooleanField(default=True) >> >> USERNAME_FIELD = 'username' >> REQUIRED_FIELDS = ['email', ] >> >> objects = UserManager() >> >> class Meta: >> verbose_name = _('user') >> verbose_name_plural = _('users') >> >> def get_full_name(self): >> full_name = '%s %s' % (self.first_name, self.last_name) >> return full_name.strip() >> >> def get_short_name(self): >> return self.first_name >> >> """ >> def is_active(self): >> return timezone.now() <= self.expires >> """ >> >> def email_user(self, subject, message, from_email=None): >> send_mail(subject, message, from_email, [self.email]) >> >> >> >> (I removed some unrelated fields). >> Now what I did was add the autoplay_enabled feature yesterday which >> wasn't there before. After adding this field, I saved the models.py ran >> manage.py makemigrations (no changes detected) and then still tried to run >> manage.py migrate. >> After starting the server when I tried to log into the Admin panel with >> the Admin user (the DB was already populated by the Admin user, two more >> users and other stuff) it gave me an OperationalError: column >> autoplay_enabled does not exist. >> >> This happened to me a lot of times when I added new fields to any of the >> models. I ended up writing a script that pre-populates the DB for me but I >> still have to manually delete my sqlite file, run migrations or syncdb and >> then create the superuser again. >> >> So what am I doing wrong? I'm sure it's just my fault. At first I even >> manually edited the migrations file in the past, for example when I changed >> one of the fields to be mandatory instead of being optional. Old data in >> the database had this field still set to null, and sometimes Django asked >> me what to do with it but most of the time I never got it to work correctly >> - so again delete DB and repeat. >> >> -- >> 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 [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/django-users. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/01706dc6-ea01-4d1d-ab3a-692f17435ddc%40googlegroups.com >> <https://groups.google.com/d/msgid/django-users/01706dc6-ea01-4d1d-ab3a-692f17435ddc%40googlegroups.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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2Be%2BciX-f_wo-eYpyGajRE5c5_%2Bo4ZUAn55Zw1Bh6wKQoKgYQw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

