mmcardle / django_builder

Django Builder Site
MIT License
607 stars 125 forks source link

Extending AbstractUser fails to import AbstractUser #177

Open clarson99 opened 1 year ago

clarson99 commented 1 year ago

When you create a model that extends AbstractUser there 2 issues:

  1. The resulting models.py is missing from django.contrib.auth.models import AbstractUser.
  2. settings.py is missing something like this AUTH_USER_MODEL = 'users.user'

This causes migrations to fail.

image
mmcardle commented 1 year ago

@clarson99

Thanks for the feedback.

  1. Should be an easy fix, will try to get that updated.
  2. This is slightly more work as a project may have multiple models that could be a AUTH_USER_MODEL there will need to be a way of indicating which one.
clarson99 commented 1 year ago

For number 2, would this be a reasonable work around?

  1. If there is only one user model a. choose it by adding AUTH_USER_MODEL = 'users.user'

  2. if there are multiple user models a. add a comment like '# TODO there were multiple user models found, we chose the first one, please uncomment the appropriate model`

    b. add the first model by adding AUTH_USER_MODEL = 'users.user'

    c. add the remaining models, but comment them out like: # AUTH_USER_MODEL = 'users2.user2'

This would at least leave a clue about what is happening, it would ensure the app starts and runs without errors, and lastly you would have to add confusing features to the UI.

mmcardle commented 1 year ago

Issue 1 should now be fixed and deployed to djangobuilder.io