Is it wrong to distribute a MongoEngine user document?

I integrate MongoDB with MongoEngine. It provides authentication and session support that will not have a standard pymongo setting.

In the usual django auth, he believed that bad practice extends the User model, since there is no guarantee that it will be used correctly everywhere. In this case, with mongoengine.django.auth?

If this is considered bad practice, what is the best way to attach a separate user profile? Django has mechanisms for pointing AUTH_PROFILE_MODULE. Is this supported in MongoEngine, or should I manually search?

+3
source share
3 answers

We are just an extended user class.

class User(MongoEngineUser):
    def __eq__(self, other):
        if type(other) is User:
            return other.id == self.id
        return False

    def __ne__(self, other):
        return not self.__eq__(other)

    def create_profile(self, *args, **kwargs):
        profile = Profile(user=self, *args, **kwargs)
        return profile

    def get_profile(self):
        try:
            profile = Profile.objects.get(user=self)
        except DoesNotExist:
            profile = Profile(user=self)
            profile.save()
        return profile

    def get_str_id(self):
        return str(self.id)

    @classmethod
    def create_user(cls, username, password, email=None):
        """Create (and save) a new user with the given username, password and
email address.
"""
        now = datetime.datetime.now()

        # Normalize the address by lowercasing the domain part of the email
        # address.
        # Not sure why we'r allowing null email when its not allowed in django
        if email is not None:
            try:
                email_name, domain_part = email.strip().split('@', 1)
            except ValueError:
                pass
            else:
                email = '@'.join([email_name, domain_part.lower()])

        user = User(username=username, email=email, date_joined=now)
        user.set_password(password)
        user.save()
        return user
+4
source

Django 1.5 , , , , User, Django < 1,5, - . Django 1.5 :

AUTH_USER_MODEL = 'myapp.MyUser'

settings.py. , , .. 1.5, User , , 1.5.

https://docs.djangoproject.com/en/dev/topics/auth/#auth-custom-user

NB I have not personally tried this in Django 1.5 w / MongoEngine, but expect him to support it.

0
source

Source: https://habr.com/ru/post/1737779/


All Articles