django管理的引导主题
django-admin-bootstrapped-rubgomez93的Python项目详细描述
使用引导的django管理主题。它不需要任何种类 你的修改,只需添加到已安装的应用程序。
要求
- django1.10 and 1.11
对于django的旧版本django,请使用原始包->;https://github.com/django-admin-bootstrapped/django-admin-bootstrapped
安装
- 使用pip install https://github.com/rubgombar1/django-admin-bootstrapped/archive/master.zip 从pypi下载
- 添加到INSTALLED_APPS之前'django.contrib.admin':
'django_admin_bootstrapped',
- 玩得开心!
配置
要获得完整的bootstrap3体验,您可能需要为字段使用自定义呈现器。 树中有一个应用程序需要安装django-bootstrap3应用程序。 您必须添加到项目设置文件中:
DAB_FIELD_RENDERER = 'django_admin_bootstrapped.renderers.BootstrapFieldRenderer'
Messages默认情况下有alert-info标记, 因此,您可能需要为不同的消息级别添加bootstrap 3标记,以使它们具有适当的样式。 添加到项目设置文件:
from django.contrib import messages MESSAGE_TAGS = { messages.SUCCESS: 'alert-success success', messages.WARNING: 'alert-warning warning', messages.ERROR: 'alert-danger error' }
现在,添加如下消息:
messages.success(request, "My success message") messages.warning(request, "My warning message") messages.error(request, "My error message")
将导致以下结果:
糖果
使用模板将自定义HTML添加到任何模型的更改表单
您可以在创建模板的任何更改表单上插入自定义HTML 将admin_model_MODELNAME_change_form.html命名为应用程序的 模板文件夹。如: myapp/templates/myapp/admin_model_mymodelname_change_form.html或 project/templates/myapp/admin_model_mymodelname_change_form.html。
内联可排序
您可以将拖放排序功能添加到任意内联 更改代码。
首先,在模型中添加一个position字段(并对模型进行排序 相应地),例如:
class TestSortable(models.Model): that = models.ForeignKey(TestMe) position = models.PositiveSmallIntegerField("Position") test_char = models.CharField(max_length=5) class Meta: ordering = ('position', )
然后在admin.py中创建一个类,使用 {TT11}$MIXIN,像 这个:
from django_admin_bootstrapped.admin.models import SortableInline from models import TestSortable class TestSortable(admin.StackedInline, SortableInline): model = TestSortable extra = 0
现在可以像往常一样使用inline。查看屏幕截图部分以查看结果 会看起来像。
这个功能是由Kyle Bock带给您的。谢谢凯尔!
xhtml兼容
兼容HTML和XHTML。为django应用程序启用xhtml 在settings.py中添加以下内容:默认内容类型= '应用程序/xhtml+xml'
管理
中的常规查找所有需要做的就是用 formfield_覆盖如下:
from django_admin_bootstrapped.widgets import GenericContentTypeSelect class SomeModelAdmin(admin.ModelAdmin): formfield_overrides = { models.ForeignKey: {'widget': GenericContentTypeSelect}, }
或者如果您想更具体一些:
from django_admin_bootstrapped.widgets import GenericContentTypeSelect class SomeModelAdmin(admin.ModelAdmin): def formfield_for_dbfield(self, db_field, **kwargs): if db_field.name == 'content_type': kwargs['widget'] = GenericContentTypeSelect return super(SomeModelAdmin, self).formfield_for_dbfield(db_field, **kwargs)
如果你决定使用formfield_overridesyou should be aware of its limitations with relation fields。
这个特性(还有更多)是由Jacob Magnusson带给您的。谢谢你,雅各布!
贡献
每一个代码,文档和用户体验的贡献都是受欢迎的。
找到问题了吗?在追踪器里报告!
有空吗?帮助解决一个已经提交的问题,请记住在一个单独的分行工作。