{"id":22948000,"url":"https://github.com/hypy13/django-daisy","last_synced_at":"2025-08-13T00:31:48.901Z","repository":{"id":257793495,"uuid":"862514667","full_name":"hypy13/django-daisy","owner":"hypy13","description":"A modern django dashboard built with daisyui","archived":false,"fork":false,"pushed_at":"2024-11-26T14:29:01.000Z","size":27483,"stargazers_count":45,"open_issues_count":4,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-27T09:09:20.970Z","etag":null,"topics":["daisyui","django-admin","django-admin-theme","django-dashboard","responsive-design"],"latest_commit_sha":null,"homepage":"https://hypy13.github.io/django-daisy-docs/","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hypy13.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-24T18:17:05.000Z","updated_at":"2024-11-27T08:00:36.000Z","dependencies_parsed_at":"2024-10-26T12:53:44.408Z","dependency_job_id":"59e46cf7-747c-4b44-aad2-32e79562d14e","html_url":"https://github.com/hypy13/django-daisy","commit_stats":null,"previous_names":["hypy13/django-daisy"],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypy13%2Fdjango-daisy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypy13%2Fdjango-daisy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypy13%2Fdjango-daisy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypy13%2Fdjango-daisy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hypy13","download_url":"https://codeload.github.com/hypy13/django-daisy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229717749,"owners_count":18113398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["daisyui","django-admin","django-admin-theme","django-dashboard","responsive-design"],"created_at":"2024-12-14T15:00:44.689Z","updated_at":"2025-08-13T00:31:48.723Z","avatar_url":"https://github.com/hypy13.png","language":"CSS","funding_links":[],"categories":["Third-Party Packages","Best Django Admin Interface Resources"],"sub_categories":["Admin Themes","Django Admin Themes \u0026 UI Enhancements"],"readme":"# Django Daisy\n![Test Status](https://github.com/hypy13/django-daisy/actions/workflows/tox_test.yml/badge.svg)\n[![Published on Django Packages](https://img.shields.io/badge/Published%20on-Django%20Packages-0c3c26)](https://djangopackages.org/packages/p/django-daisy/)\n\n\n[**Live Demo https://hypy13-django-daisy.hf.space/en/admin/**](https://hypy13-django-daisy.hf.space/en/admin/)  \n**Username:** demo  \n**Password:** demo\n\n\nfor RTL mode:\nhttps://hypy13-django-daisy.hf.space/fa/admin/\n\n![ScreenShot](https://raw.githubusercontent.com/hypy13/django-daisy/refs/heads/main/screenshots/change_form.png)\n\n---\n\nDjango Daisy is a modern, sleek, and highly responsive admin dashboard built with **DaisyUI** and **TailwindCSS**. It brings a polished and user-friendly interface that scales beautifully across devices, from mobile to desktop, making your admin experience fast and efficient.\n\n\n### Documentation:\nhttps://hypy13.github.io/django-daisy-docs/\n\n---\n\n## ✨ Key Features\n\n- 🌍 **Responsive Design**: Perfectly adapts to all screen sizes, ensuring a seamless user experience across mobile, tablet, and desktop devices.\n- 🔄 **RTL Support**: Complete right-to-left language support, with a clean and consistent layout for RTL users.\n- 🎨 **Multi-Theme Support**: Effortlessly switch between themes to match your brand identity or personal style.\n- 🚀 **Enhanced UX/UI**: Experience an optimized interface with **tabbed inline admin panels** for better organization and usability.\n- 📝 **Tabbed Inline Admin**: Manage related data more efficiently with tabbed inline admin sections, improving organization and accessibility.\n- 🔍 **Advanced Admin Filtering**: Utilize multi-value filters for fast and precise navigation through admin lists.\n\n---\n\n## ⚙️ Compatibility\n\n- Django 3.2 - 5.1.1 are fully supported.\n\n---\n\n## 🚧 Upcoming Features\n\nStay tuned! Continuous improvements and new features are regularly added to enhance your experience.\n\n---\n\n## 📦 Installation\n\n### Option 1: Install via PyPi\n\n```bash\npip install django-daisy\n```\n### Option 2: Install as an editable GitHub source\n\n```bash\npip install -e git+https://github.com/hypy13/django-daisy.git#egg=django-daisy\n```\n\nAfter installation, add `django_daisy` and `django.contrib.humanize` to your `INSTALLED_APPS` in the Django settings file.  \n\n```python\nINSTALLED_APPS = [\n    'django_daisy',\n    'django.contrib.admin',\n    'django.contrib.humanize',  # Required for django-daisy\n    ...\n]\n```\n\n\nOnce you've made these changes, enjoy the fresh new theme!\n\n---\n\n## Project Customizations\n\n### 1. App Configuration in `apps.py`\n\nYou can configure app-specific settings in the `apps.py` file for each application within your Django project. Below is an example of how to customize the `Polls` app:\n\n```python\nclass PollsConfig(AppConfig):\n    name = 'polls'  # The name of the app\n    icon = 'fa fa-square-poll-vertical'  # FontAwesome icon for the app (optional)\n    divider_title = \"Apps\"  # Title of the section divider in the sidebar (optional)\n    priority = 0  # Determines the order of the app in the sidebar (higher values appear first, optional)\n    hide = False  # Set to True to hide the app from the sidebar menu (optional)\n```\n\n### Explanation:\n- **name**: The name of the app.\n- **icon**: An optional FontAwesome icon to display next to the app name in the sidebar.\n- **divider_title**: The title for the section divider, grouping similar apps together (optional).\n- **priority**: An optional setting that controls the order of apps in the sidebar; higher values appear at the top.\n- **hide**: If set to `True`, the app will be hidden from the sidebar menu.\n\n---\n\n## 2. Global Customizations in `settings.py`\n\nYou can define various project-wide settings for customizing the Django admin interface in your `settings.py` file using the `DAISY_SETTINGS` dictionary. Below is an example configuration:\n\n```python\nDAISY_SETTINGS = {\n    'SITE_TITLE': 'Django Admin',  # The title of the site \n    'SITE_HEADER': 'Administration',  # Header text displayed in the admin panel\n    'INDEX_TITLE': 'Hi, welcome to your dashboard',  # The title for the index page of dashboard\n    'SITE_LOGO': '/static/admin/img/daisyui-logomark.svg',  # Path to the logo image displayed in the sidebar\n    'EXTRA_STYLES': [],  # List of extra stylesheets to be loaded in base.html (optional)\n    'EXTRA_SCRIPTS': [],  # List of extra script URLs to be loaded in base.html (optional)\n    'LOAD_FULL_STYLES': False,  # If True, loads full DaisyUI components in the admin (useful if you have custom template overrides)\n    'SHOW_CHANGELIST_FILTER': False,  # If True, the filter sidebar will open by default on changelist views\n    'DONT_SUPPORT_ME': False, # Hide github link in sidebar footer\n    'SIDEBAR_FOOTNOTE': '', # add footnote to sidebar\n    'APPS_REORDER': {\n        # Custom configurations for third-party apps that can't be modified directly in their `apps.py`\n        'auth': {\n            'icon': 'fa-solid fa-person-military-pointing',  # FontAwesome icon for the 'auth' app\n            'name': 'Authentication',  # Custom name for the 'auth' app\n            'hide': False,  # Whether to hide the 'auth' app from the sidebar (set to True to hide)\n            'divider_title': \"Auth\",  # Divider title for the 'auth' section\n        },\n        'social_django': {\n            'icon': 'fa-solid fa-users-gear',  # Custom FontAwesome icon for the 'social_django' app\n        },\n    },\n}\n```\n\n### Explanation:\n- **SITE_TITLE**: Sets the title of your site (visible in the browser tab).\n- **SITE_HEADER**: The header displayed at the top of the Django admin interface.\n- **INDEX_TITLE**: The title shown on the dashboard page of the admin panel.\n- **SITE_LOGO**: Specifies the path to a logo image that appears in the sidebar.\n- **EXTRA_STYLES**: A list of additional CSS files to be loaded into the admin interface (useful for custom styling).\n- **EXTRA_SCRIPTS**: A list of additional JavaScript files to be loaded into the admin interface.\n- **LOAD_FULL_STYLES**: If set to `True`, loads the full DaisyUI library for styling, which can be useful if you have overridden the admin templates.\n- **SHOW_CHANGELIST_FILTER**: Controls whether the changelist filter sidebar is shown by default.\n- **DONT_SUPPORT_ME**: Hide github link in sidebar footer.\n- **SIDEBAR_FOOTNOTE**: Add footnote to sidebar.\n- **APPS_REORDER**: This allows you to reorder, customize, and modify third-party apps. For example, you can change the name of the `auth` app to `users`, provide a custom icon, or hide it from the sidebar entirely.\n\n---\n\n### Using Tabbed Inline Admin\n\nTo create a tabbed inline admin interface in your Django project, follow these steps:\n\n1. **Import the necessary modules**:\n    import NavTabMixin in your `admin.py` file:\n   ```python\n   from django_daisy.mixins import NavTabMixin\n   ```\n\n2. **Extend `NavTabMixin` in your `InlineAdmin` class**:\n   Create your inline admin class by extending `NavTabMixin` along with `admin.TabularInline` or `admin.StackedInline` for a different layout:\n   ```python\n   class ChoiceInline(admin.TabularInline, NavTabMixin):  # or admin.StackedInline for a different layout\n       model = Choice\n       extra = 1\n   ```\n\n3. **Register your inline admin class**:\n   Use the inline admin class in your `ModelAdmin` class:\n   ```python\n   @admin.register(Poll)\n   class PollAdmin(admin.ModelAdmin):\n       inlines = [ChoiceInline]\n   ```\n\n### Making Admin Fieldsets as Navtabs\n\nTo make admin fieldsets appear as navigation tabs in the admin interface, add the `navtab` class to the `classes` attribute of your fieldset definition in your `admin.py` file:\n\n```python\n@admin.register(MyModel)\nclass MyModelAdmin(admin.ModelAdmin):\n    fieldsets = (\n        (None, {\n            'fields': ('username', 'password')\n        }),\n        (_('Personal info (tabbed example)'), {\n            'fields': (\n                'first_name', 'last_name', 'email',\n            ),\n            'classes': ('navtab',),  # Add navtab class here\n        }),\n        (_('No tabbed example'), {\n            'fields': (\n                'is_active', 'is_staff', 'is_superuser',\n            ),\n        }),\n    )\n```\n\nThis will create a tabbed interface where each fieldset marked with the `navtab` class appears as a separate navigation tab in the admin form.\n\n### 🌐 Enabling Language Change in Admin Panel\n\nTo enable language switching directly from the admin panel, follow these steps:\n\n1. **Include Django's `set_language` URL**  \n   Add the following line to your `urls.py` file:\n   ```python\n   urlpatterns = [\n       ...,\n       path(\"i18n/\", include(\"django.conf.urls.i18n\")),  # Add this line\n   ]\n   ```\n\n2. **Ensure `LocaleMiddleware` is Enabled**  \n   Confirm that the following middleware is included in your `MIDDLEWARE` settings:\n   ```python\n   MIDDLEWARE = [\n       ...,\n       'django.middleware.locale.LocaleMiddleware',\n       ...\n   ]\n   ```\n\n3. **Define Supported Language**   \n   Specify the languages your application supports in `settings.py`:\n   ```python\n   LANGUAGES = [\n       ('en', 'English'),\n       ('fa', 'Farsi'),\n       # Add other languages as needed\n   ]\n   ```\n\n## 🤝 Contributing\n\nWe welcome contributions from the community! Feel free to submit any issues, suggestions, or pull requests to help improve Django Daisy.\n\n---\n\n## 📸 Screenshots\n\n##### Listing View:\n![Listing View](https://raw.githubusercontent.com/hypy13/django-daisy/refs/heads/main/screenshots/listing.png)\n\n##### Change Form:\n![Listing View](https://raw.githubusercontent.com/hypy13/django-daisy/refs/heads/main/screenshots/change_form.png)\n\n##### Mobile Responsive:\n![Listing View](https://raw.githubusercontent.com/hypy13/django-daisy/refs/heads/main/screenshots/mobile.png)\n\n##### Dark Theme:\n![Listing View](https://raw.githubusercontent.com/hypy13/django-daisy/refs/heads/main/screenshots/dark_theme.png)\n\n## Acknowledgments\nSpecial thanks to [Cloud With Django](https://www.youtube.com/@CloudWithDjango) for featuring my theme in their video. Your support means a lot! \u003cbr\u003e\nDemo Video: https://www.youtube.com/watch?v=WEKTXu1la9M\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypy13%2Fdjango-daisy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhypy13%2Fdjango-daisy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypy13%2Fdjango-daisy/lists"}