/django-guest-user

A Django app that allows visitors to interact with your site as a guest user without requiring registration.

Primary LanguagePythonMIT LicenseMIT

Code Lint Python Tests Documentation

django-guest-user

Allow visitors to interact with your site like a temporary user ("guest") without requiring registration.

Anonymous visitors who request a decorated page get a real temporary user object assigned and are logged in automatically. They can use the site like a normal user until they decide to convert to a real user account to save their data.

Inspired by and as an alternative for django-lazysignup and rewritten for Django 3.2+ and Python 3.7+.

Documentation

Find the complete documentation on Read the Docs.

Quickstart

  1. Install the django-guest-user package from PyPI

  2. Add guest_user to your INSTALLED_APPS and migrate your database

  3. Add guest_user.backends.GuestBackend to your AUTHENTICATION_BACKENDS

  4. Include guest_user.urls in your URLs

  5. Decorate your views with @allow_guest_user:

    from guest_user.decorators import allow_guest_user
    
    @allow_guest_user
    def my_view(request):
        assert request.user.is_authenticated
        return render(request, "my_view.html")

A more detailed guide is available in the installation documentation.

Contributing

All contributions are welcome! Please read the contributing guidelines in this repostory.

Development Status

This project is under active development. Thanks to previous work the core functionality is well-established and this package builds on top of it.

This project was created because the original project has been in an inactive state without major updates in a long time. The code base was rewritten with only modern versions of Python and Django in mind.