У меня есть солидный уровень в Django, но я не могу найти, как правильно его решить:
Я создал API, который будет использоваться в нескольких мобильных проектах.Поэтому я реализовал модель приложения, которую я передаю при входе в систему.
Я также создал пользовательскую модель пользователя:
class CustomUser(AbstractUser):
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
username = None
email = models.EmailField('email address', unique=True)
application = models.ForeignKey(Application, null=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
class Meta:
unique_together = ('email', 'application')
Я использую djangorestframework-jwt.Итак, у меня есть вызов API, для которого требуется токен. Для получения токена нужны электронная почта, пароль и приложение (apikey как строка FYI).
Все работает нормально, за исключением того, что в этой конфигурации я не могусоздать другого пользователя с тем же адресом электронной почты, но другим приложением.Потому что мой EmailField - это мой USERNAME_FIELD.
Есть ли какое-нибудь решение, которое позволит мне переписать все?
Лучшее, что я имею в виду, - это добавить поле (например, CharField), которое будет уникальным (например, сочетание user.id + apikey), которое будет заполнено автоматически при создании.Но затем, когда я использую ./manage.py createuperuser, django попросит меня заполнить поле вручную.Ничего страшного, но если у вас будет лучший / правильный путь, я буду рад!