# Django Daisy
![Test Status](https://github.com/hypy13/django-daisy/actions/workflows/tox_test.yml/badge.svg)
[**Live Demo https://hypy13-django-daisy.hf.space/en/admin/**](https://hypy13-django-daisy.hf.space/en/admin/)
**Username:** demo
**Password:** demo
for RTL mode:
https://hypy13-django-daisy.hf.space/fa/admin/
![ScreenShot](https://raw.githubusercontent.com/hypy13/django-daisy/refs/heads/main/screenshots/change_form.png)
---
Django 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.
### Documentation:
https://hypy13.github.io/django-daisy-docs/
---
## ✨ Key Features
- 🌍 **Responsive Design**: Perfectly adapts to all screen sizes, ensuring a seamless user experience across mobile, tablet, and desktop devices.
- 🔄 **RTL Support**: Complete right-to-left language support, with a clean and consistent layout for RTL users.
- 🎨 **Multi-Theme Support**: Effortlessly switch between themes to match your brand identity or personal style.
- 🚀 **Enhanced UX/UI**: Experience an optimized interface with **tabbed inline admin panels** for better organization and usability.
- 📝 **Tabbed Inline Admin**: Manage related data more efficiently with tabbed inline admin sections, improving organization and accessibility.
- 🔍 **Advanced Admin Filtering**: Utilize multi-value filters for fast and precise navigation through admin lists.
---
## ⚙️ Compatibility
- Django 3.2 - 5.1.1 are fully supported.
---
## 🚧 Upcoming Features
Stay tuned! Continuous improvements and new features are regularly added to enhance your experience.
---
## 📦 Installation
### Option 1: Install via PyPi
```bash
pip install django-daisy
```
### Option 2: Install as an editable GitHub source
```bash
pip install -e git+https://github.com/hypy13/django-daisy.git#egg=django-daisy
```
After installation, add `django_daisy` to your `INSTALLED_APPS` in the Django settings file.
```python
INSTALLED_APPS = [
'django_daisy',
'django.contrib.admin',
...
]
```
Once you've made these changes, enjoy the fresh new theme!
---
## Project Customizations
### 1. App Configuration in `apps.py`
You 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:
```python
class PollsConfig(AppConfig):
name = 'polls' # The name of the app
icon = 'fa fa-square-poll-vertical' # FontAwesome icon for the app (optional)
divider_title = "Apps" # Title of the section divider in the sidebar (optional)
priority = 0 # Determines the order of the app in the sidebar (higher values appear first, optional)
hide = False # Set to True to hide the app from the sidebar menu (optional)
```
### Explanation:
- **name**: The name of the app.
- **icon**: An optional FontAwesome icon to display next to the app name in the sidebar.
- **divider_title**: The title for the section divider, grouping similar apps together (optional).
- **priority**: An optional setting that controls the order of apps in the sidebar; higher values appear at the top.
- **hide**: If set to `True`, the app will be hidden from the sidebar menu.
---
## 2. Global Customizations in `settings.py`
You 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:
```python
DAISY_SETTINGS = {
'SITE_TITLE': 'Django Admin', # The title of the site
'SITE_HEADER': 'Administration', # Header text displayed in the admin panel
'INDEX_TITLE': 'Hi, welcome to your dashboard', # The title for the index page of dashboard
'SITE_LOGO': '/static/admin/img/daisyui-logomark.svg', # Path to the logo image displayed in the sidebar
'EXTRA_STYLES': [], # List of extra stylesheets to be loaded in base.html (optional)
'EXTRA_SCRIPTS': [], # List of extra script URLs to be loaded in base.html (optional)
'LOAD_FULL_STYLES': False, # If True, loads full DaisyUI components in the admin (useful if you have custom template overrides)
'SHOW_CHANGELIST_FILTER': False, # If True, the filter sidebar will open by default on changelist views
'DONT_SUPPORT_ME': False, # Hide github link in sidebar footer
'SIDEBAR_FOOTNOTE': '', # add footnote to sidebar
'APPS_REORDER': {
# Custom configurations for third-party apps that can't be modified directly in their `apps.py`
'auth': {
'icon': 'fa-solid fa-person-military-pointing', # FontAwesome icon for the 'auth' app
'name': 'Authentication', # Custom name for the 'auth' app
'hide': False, # Whether to hide the 'auth' app from the sidebar (set to True to hide)
'app': 'users', # The actual app to display in the sidebar (e.g., rename 'auth' to 'users')
'divider_title': "Auth", # Divider title for the 'auth' section
},
'social_django': {
'icon': 'fa-solid fa-users-gear', # Custom FontAwesome icon for the 'social_django' app
},
},
}
```
### Explanation:
- **SITE_TITLE**: Sets the title of your site (visible in the browser tab).
- **SITE_HEADER**: The header displayed at the top of the Django admin interface.
- **INDEX_TITLE**: The title shown on the dashboard page of the admin panel.
- **SITE_LOGO**: Specifies the path to a logo image that appears in the sidebar.
- **EXTRA_STYLES**: A list of additional CSS files to be loaded into the admin interface (useful for custom styling).
- **EXTRA_SCRIPTS**: A list of additional JavaScript files to be loaded into the admin interface.
- **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.
- **SHOW_CHANGELIST_FILTER**: Controls whether the changelist filter sidebar is shown by default.
- **DONT_SUPPORT_ME**: Hide github link in sidebar footer.
- **SIDEBAR_FOOTNOTE**: Add footnote to sidebar.
- **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.
---
### Using Tabbed Inline Admin
To create a tabbed inline admin interface in your Django project, follow these steps:
1. **Import the necessary modules**:
import NavTabMixin in your `admin.py` file:
```python
from django_daisy.mixins import NavTabMixin
```
2. **Extend `NavTabMixin` in your `InlineAdmin` class**:
Create your inline admin class by extending `NavTabMixin` along with `admin.TabularInline` or `admin.StackedInline` for a different layout:
```python
class ChoiceInline(admin.TabularInline, NavTabMixin): # or admin.StackedInline for a different layout
model = Choice
extra = 1
```
3. **Register your inline admin class**:
Use the inline admin class in your `ModelAdmin` class:
```python
@admin.register(Poll)
class PollAdmin(admin.ModelAdmin):
inlines = [ChoiceInline]
```
## 🤝 Contributing
We welcome contributions from the community! Feel free to submit any issues, suggestions, or pull requests to help improve Django Daisy.
---
## 📸 Screenshots
##### Listing View:
![Listing View](https://raw.githubusercontent.com/hypy13/django-daisy/refs/heads/main/screenshots/listing.png)
##### Change Form:
![Listing View](https://raw.githubusercontent.com/hypy13/django-daisy/refs/heads/main/screenshots/change_form.png)
##### Mobile Responsive:
![Listing View](https://raw.githubusercontent.com/hypy13/django-daisy/refs/heads/main/screenshots/mobile.png)
##### Dark Theme:
![Listing View](https://raw.githubusercontent.com/hypy13/django-daisy/refs/heads/main/screenshots/dark_theme.png)
## Acknowledgments
Special thanks to [Cloud With Django](https://www.youtube.com/@CloudWithDjango) for featuring my theme in their video. Your support means a lot! <br>
Demo Video: https://www.youtube.com/watch?v=WEKTXu1la9M
Raw data
{
"_id": null,
"home_page": "https://github.com/hypy13/django-daisy",
"name": "django-daisy",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "django, admin, dashboard, daisyui, tailwindcss",
"author": "Hossein Yaghoubi",
"author_email": "Hossein Yaghoubi <hossein.yaghoubi13@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/65/93/888119d4be9ba6d82042bfef78ce6acbcea65d2ac3cd636a3db552bde332/django_daisy-1.0.8.tar.gz",
"platform": null,
"description": "# Django Daisy\n![Test Status](https://github.com/hypy13/django-daisy/actions/workflows/tox_test.yml/badge.svg)\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## \u2728 Key Features\n\n- \ud83c\udf0d **Responsive Design**: Perfectly adapts to all screen sizes, ensuring a seamless user experience across mobile, tablet, and desktop devices.\n- \ud83d\udd04 **RTL Support**: Complete right-to-left language support, with a clean and consistent layout for RTL users.\n- \ud83c\udfa8 **Multi-Theme Support**: Effortlessly switch between themes to match your brand identity or personal style.\n- \ud83d\ude80 **Enhanced UX/UI**: Experience an optimized interface with **tabbed inline admin panels** for better organization and usability.\n- \ud83d\udcdd **Tabbed Inline Admin**: Manage related data more efficiently with tabbed inline admin sections, improving organization and accessibility.\n- \ud83d\udd0d **Advanced Admin Filtering**: Utilize multi-value filters for fast and precise navigation through admin lists.\n\n---\n\n## \u2699\ufe0f Compatibility\n\n- Django 3.2 - 5.1.1 are fully supported.\n\n---\n\n## \ud83d\udea7 Upcoming Features\n\nStay tuned! Continuous improvements and new features are regularly added to enhance your experience.\n\n---\n\n## \ud83d\udce6 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` to your `INSTALLED_APPS` in the Django settings file. \n\n```python\nINSTALLED_APPS = [\n 'django_daisy',\n 'django.contrib.admin',\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 'app': 'users', # The actual app to display in the sidebar (e.g., rename 'auth' to 'users')\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\n\n## \ud83e\udd1d 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## \ud83d\udcf8 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! <br>\nDemo Video: https://www.youtube.com/watch?v=WEKTXu1la9M\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "A modern Django dashboard built with DaisyUI",
"version": "1.0.8",
"project_urls": {
"Homepage": "https://github.com/hypy13/django-daisy"
},
"split_keywords": [
"django",
" admin",
" dashboard",
" daisyui",
" tailwindcss"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8e5d7dd7bd7123541f13b1874554aa8bdfb842a651d0a63dd199e551c332f047",
"md5": "dfa6dec87d581a213a2b6a07e0da692d",
"sha256": "2e587204785fd9805ead1393a1cd2ec7acbbdc3d0c57679ad2d0b2f3f2346f56"
},
"downloads": -1,
"filename": "django_daisy-1.0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dfa6dec87d581a213a2b6a07e0da692d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8755209,
"upload_time": "2025-01-07T09:20:58",
"upload_time_iso_8601": "2025-01-07T09:20:58.754483Z",
"url": "https://files.pythonhosted.org/packages/8e/5d/7dd7bd7123541f13b1874554aa8bdfb842a651d0a63dd199e551c332f047/django_daisy-1.0.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6593888119d4be9ba6d82042bfef78ce6acbcea65d2ac3cd636a3db552bde332",
"md5": "090e31916cc25586abd3470ab5814d19",
"sha256": "a86d897fb631b0fa21b7c8f5b16a1019b0fb7cef3a0c48aa80fda1f21d2c0dbb"
},
"downloads": -1,
"filename": "django_daisy-1.0.8.tar.gz",
"has_sig": false,
"md5_digest": "090e31916cc25586abd3470ab5814d19",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8876676,
"upload_time": "2025-01-07T09:21:01",
"upload_time_iso_8601": "2025-01-07T09:21:01.267592Z",
"url": "https://files.pythonhosted.org/packages/65/93/888119d4be9ba6d82042bfef78ce6acbcea65d2ac3cd636a3db552bde332/django_daisy-1.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-07 09:21:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hypy13",
"github_project": "django-daisy",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "django-daisy"
}