{"id":34072932,"url":"https://github.com/xangcastle/django_ajaxlte","last_synced_at":"2025-12-14T08:30:42.556Z","repository":{"id":46837009,"uuid":"257043142","full_name":"xangcastle/django_ajaxlte","owner":"xangcastle","description":"Generate adminlte crud with django","archived":false,"fork":false,"pushed_at":"2024-12-21T20:00:02.000Z","size":7344,"stargazers_count":4,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-27T17:02:09.667Z","etag":null,"topics":["adminlte","adminlte-django","adminlte-template","django"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xangcastle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-04-19T16:07:31.000Z","updated_at":"2024-12-21T19:59:31.000Z","dependencies_parsed_at":"2024-11-20T02:01:23.141Z","dependency_job_id":"26ea4a37-0262-424c-8aeb-09d71a402316","html_url":"https://github.com/xangcastle/django_ajaxlte","commit_stats":{"total_commits":36,"total_committers":2,"mean_commits":18.0,"dds":0.05555555555555558,"last_synced_commit":"de0c1960e0f06208ac3df2bf123a1590af21f897"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/xangcastle/django_ajaxlte","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xangcastle%2Fdjango_ajaxlte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xangcastle%2Fdjango_ajaxlte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xangcastle%2Fdjango_ajaxlte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xangcastle%2Fdjango_ajaxlte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xangcastle","download_url":"https://codeload.github.com/xangcastle/django_ajaxlte/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xangcastle%2Fdjango_ajaxlte/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27723235,"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","status":"online","status_checked_at":"2025-12-14T02:00:11.348Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["adminlte","adminlte-django","adminlte-template","django"],"created_at":"2025-12-14T08:30:31.365Z","updated_at":"2025-12-14T08:30:42.551Z","avatar_url":"https://github.com/xangcastle.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ajaxlte\n\n[![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/)\n\n[![Latest PyPI version](https://img.shields.io/pypi/v/django-ajaxlte.svg)](https://crate.io/packages/django-ajaxlte/)\n\n[![Number of PyPI downloads](https://img.shields.io/pypi/l/django-ajaxlte.svg)](https://crate.io/packages/django-ajaxlte/)\n\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity)\n\n[![PyPI download month](https://img.shields.io/pypi/dm/django-ajaxlte.svg)](https://pypi.python.org/pypi/django-ajaxlte/)\n\nAvailable features:\n\n* [class based views](#classview)\nRewritable methods for class based views.\n\n* [adminlte 3.0](#adminlte)\nUsing adminlte template 3.0.\n\n* [Traslation](#translation)\nTraslation Suport by Locales.\n\n\n# Requirements\n* Python = 3\n* Django \u003e= 3.05\n* django-crispy-forms \u003e= 1.9.0\n\n# Installation\n\n* ```pip install django-ajaxlte```\n\n## settings.py\n\n * Add 'ajaxlte' in your INSTALLED_APPS.\n\n```python\nINSTALLED_APPS = [\n    'ajaxlte',\n    ...,\n    'django.contrib.humanize',\n    'mathfilters',\n    'crispy_forms',\n]\n\nCRISPY_TEMPLATE_PACK = 'bootstrap4'\n\nMIDDLEWARE = [\n    ...,\n    'ajaxlte.middleware.JSONParsingMiddleware',\n    'ajaxlte.middleware.PutParsingMiddleware',\n    'ajaxlte.middleware.DeleteParsingMiddleware',\n]\n```\n\n\n## urls.py\n\n * Put ajax urls in 'urlpatterns':\n\n```python\nfrom django.contrib import admin\nfrom django.urls import path, include\n\nurlpatterns = [\n    path('admin/', admin.site.urls),\n    path('ajax/', include('ajaxlte.ajax_urls')),\n]\n```\n\n\n\n# How to use\n\nIn your models.py import BaseModel and use like parent.\n\n```python\nfrom django.db import models\nfrom ajaxlte.models import BaseModel\n\n\nclass Foo(BaseModel):\n    code = models.CharField(max_length=35, null=True, blank=True)\n    name = models.CharField(max_length=165, null=True, blank=True)\n\n    def __str__(self):\n        return self.code\n\n\nclass Bar(BaseModel):\n    foo = models.ForeignKey(Foo, on_delete=models.CASCADE)\n    code = models.CharField(max_length=35, null=True, blank=True)\n    name = models.CharField(max_length=165, null=True, blank=True)\n\n    def __str__(self):\n        return self.code\n```\n\n\nIn your views.py\n\n```python\nfrom ajaxlte.generics import Index, Datatables, AjaxSite\nfrom .models import *\nfrom django.shortcuts import render\n\n\n# this is a public website, maybe your root url\ndef website(request):\n    return render(request, 'testapp/index.html')\n\n\n# general settings\nAjaxSite.proyect_name = \"Amazing proyect\"\nAjaxSite.name_space = \"testapp\"\nAjaxSite.root_url = \"testapp/\"\nAjaxSite.login_url = \"/admin/login/\"\nAjaxSite.logo_url = \"/static/testapp/img/logo.png\"\nAjaxSite.spinner = \"/static/testapp/img/spinner.gif\" # the spinner is the gif loaded between ajax requests\n\n\n# creating de index page\nclass TestIndex(Index):\n    site = AjaxSite\n\n\n# creating the foo datatable\nclass FooDatatable(Datatables):\n    site = AjaxSite\n    model = Foo\n    list_display = ('code', 'name')\n    search_fields = ('code', 'name')\n\n\n# creating the foo datatable\nclass Bars(Datatables):\n    site = AjaxSite\n    model = Bar\n    list_display = ('code', 'name', 'foo')\n    search_fields = ('code', 'name')\n\n\n# add index site\nAjaxSite.set_index(TestIndex)\n\n\n# add menu\nAjaxSite.add_pill('test1')\nAjaxSite.add_pill('test2')\n\n\n# register classes\nAjaxSite.register(FooDatatable, 'test1')\nAjaxSite.register(Bars, 'test2')\n```\n\n\nIn your main urls.py include ajaxlte and your AjaxSite.\n\n```python\nfrom django.contrib import admin\nfrom django.urls import path, include\nfrom testapp.views import AjaxSite, website\n\nurlpatterns = [\n    path('', website, name=\"website\"),\n    path(AjaxSite.root_url, include((AjaxSite.urlpatterns, AjaxSite.name_space), namespace=AjaxSite.name_space)),\n    path('admin/', admin.site.urls),\n    path('ajax/', include('ajaxlte.ajax_urls')),\n]\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxangcastle%2Fdjango_ajaxlte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxangcastle%2Fdjango_ajaxlte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxangcastle%2Fdjango_ajaxlte/lists"}