Skip to main content

Link related objects in Django admin using decorators

Project description

Django Admin Anchors

Turn Django admin list display items into clickable links to related objects using decorators.

Installation

pip install django-admin-anchors

Usage

# yourapp/admin.py
from django.contrib import admin
from admin_anchors.decorators import admin_anchor
from yourapp.models import Player


@admin.register(Player)
class PlayerAdmin(admin.ModelAdmin):
    list_display = ["__str__", "profile_link", "teams_link"]

    @admin_anchor(field_name="profile")
    def profile_link(self, instance):
        return "Profile"

    @admin_anchor(field_name="teams")
    def teams_link(self, instance):
        return f"{instance.teams.count()} teams"

Take a look at the tests/project directory to see a runnable example project.

Contributing

Setup

  1. Clone the repository and enter the cloned folder
  2. (optional) Create and activate a dedicated Python virtual environment
  3. Run pip install -e ".[dev]" to install the projects requirements
  4. (optional) Run pre-commit install to install the pre-commit hook

Pre-commit hook

Our pre-commit hook formats and lints the code.

Formatting and linting

  • Run black admin_anchors tests to format the code
  • Run flake8 admin_anchors tests to lint the code

Testing

  • Run py.test --cov admin_anchors tests to run the tests in the current Python env
  • Run tox to run the tests in all supported Python and Django environments

Makefile

All commands listed above have shortcut make recipes. Take a look at the Makefile to learn more.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-admin-anchors-1.0.0.tar.gz (4.0 kB view hashes)

Uploaded Source

Built Distribution

django_admin_anchors-1.0.0-py3-none-any.whl (4.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page