Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

django-infinite-scroll

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

django-infinite-scroll

Adds infinite scroll to any page

  • 0.1.7
  • PyPI
  • Socket score

Maintainers
1

django-infinite-scroll

Add infinite scroll to any django app.

Features

- Allows to add infinite scroll to any page.
- Easy pagination.
- Works with Django's Queryset or any kind of lists.
- Requires no aditional javascript framework.
- Easy to install and set up.

Quicksetup

With docker compose:

    git clone https://github.com/gsteixeira/django-infinite-scroll.git
    cd django-infinite-scroll/example/
    docker-compose up

Go to http://localhost:8000 and try it out. 8)

installation

Install module.

    pip install django-infinite-scroll

Add to settings.py

    INSTALLED_APPS = [
        # ...
        'infscroll',
    ]

First, let's make a view that will load the dynamic content:

    from infscroll.views import more_items
    def more(request):
        # This is the list that will be paginated.
        list_items = MyModel.objects.all()
        return more_items(request, list_items,
                          # (optional) your custom template
                          template='more.html')

Add it to urls.py

    path('more/', myapp.views.more, name='more'),

Finally, Add to the view you want to show the infinite scroll:

    from infscroll.utils import get_pagination
    def my_view(request):
        # The list of items to be paginated. It can be any list of queryset.
        list_items = MyModel.objects.all()
        paginated = get_pagination(request, list_items)
        # we must declare the url where it will load more stuff
        data = {
            'more_posts_url': reverse('more'),
            }
        # update with paginated info
        data.update(paginated)
        return render(request, 'my_view.html', data)

Now add to your template:

    {% load infinite_scroll %}
    <html>
        <body>
            <p>Hello</p>
            <!-- The dynamically loaded items will show here -->
            {% infinite_scroll_box %}
            <!-- This can go in the end of the template. Will load css and js -->
            {% set_infinite_scroll %}
        </body>
    </html>

Now go to the page of "my_view", and you should have infinite scroll!

(optional) If you want to use a custom "load_more" template

Here is an example:

    {% load infinite_scroll %}
    {% for item in feed %}
        {{ item }}
    {% endfor %}
    {% infinite_scroll_tags %}

Just add this for loop to iterate the list and include the scroll tags

Settings

PAGINATION_STEPS - the amount of items each step will load. Default to 10.

Requirements

- python3
- django

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc