今天首席CTO笔记来给各位分享关于django如何直接登录xadmin的相关内容,其中也会对怎么用django写一个登陆页面进行详细介绍,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、django-xadmin后台列表页勾选复选框怎么打开?2、用django自带的用户登录怎么实现3、仅需三步,为Django admin增加登录验证码功能4、django配置Xadmindjango-xadmin后台列表页勾选复选框怎么打开?
1. Django Admin 不适合最终用户使用
Django admin是为管理员设计的, 而不是给最终用户使用的. Django admin的存在是为了方便管理员添加修改删除数据和管理站点任务.
2. 列表显示
如上图, 因为model的默认文本显示是 xxx object, 所以在admin列表页中默认显示的也是xxx object. 如果希望显示更有用的信息 我们可以进行如下设置:
为model写__unicode__()方法
如果希望model在列表页中显示更多项, 则需要使用list_display
__unicode()__例子:
# models.py
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=100)
slug = models.CharField(max_length=100)
content = models.TextField()
is_published = models.BooleanField(default=False)
def __unicode__(self):
return self.title
# admin.py
from django.contrib import admin
from .models import Article
admin.site.register(Article)
结果:
如果希望显示其他项:
# admin.py
from django.contrib import admin
from .models import Article
class ArticleAdmin(admin.ModelAdmin):
list_display = ('title', 'is_published')
admin.site.register(Article, ArticleAdmin)
结果:
3. 为ModelAdmin增加动作
我们可以为ModelAdmin增加method或function, 以此使admin界面更符合我们的需求.
例如, 我们希望在在admin界面中显示一个明确地URL, 但当我们在model中定义了get_absolute_url()方法后, django admin默认给我们的却是一个与我们想要的URL完全不同的URL. 于是我们可以通过以下方法定义该URL:
# admin.py
from django.contrib import admin
from django.core.urlresolvers import reverse
from django.utils.html import format_html
from .models import Article
class ArticleAdmin(admin.ModelAdmin):
list_display = ('title', 'is_published',)
readonly_fields = ('show_url',)
def show_url(self, instance):
url = reverse('article_detail', kwargs={'pl': instance.pk})
response = format_html("""""", url)
return response
show_url.short_description = u"文章预览"
# 显示HTML tag
# 对于用户提交的数据, 永远不要这么设置!
show_url.allow_tags = True
注意, allow_tags属性, 其默认值是False, 如果错误使用将会带来安全隐患. 如果设置为True,
在admin中会允许显示HTML tag. 因此我们使用的原则是, 对于用户输入的信息, 永远不设置allow_tags=True.
只有当其内容是系统生成, 用户无法修改的时, 才能使用allow_tags=True.
4. 不在多用户编辑环境使用list_editable
django admin为我们提供了在列表页修改model属性的功能, 这样方便管理员一次修改多个属性. 如果管理员只有一个人的话,
那就没问题, 但在多用户环境中时, 却是会存在一个很严重的潜在问题. 因为在list页提交的修改信息, 记录的是位置, 而不是model的主键.
举个例子, 文章列表页默认按照创建顺序逆序排列, 用户A打开文章列表页, 并开始修改, 同时用户B增加了一篇新文章, 此时,
当用户A提交修改后其后的文章信息都会出错.
用django自带的用户登录怎么实现
settings.py
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.staticfiles',
)
urls.py
from django.conf.urls.defaults import *
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)
if settings.DEBUG:
urlpatterns = patterns('',
url(r'^media/(?Ppath.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
url(r'', include('django.contrib.staticfiles.urls')),
) + urlpatterns
# 详细可参考:
仅需三步,为Django admin增加登录验证码功能
首先,需要安装一个验证码的第三方库-django-simple-captcha,这是一个极其简单但可高度定制的 Django 第三方应用程序,用于将验证码图像添加到任何 Django 表单。
在项目的urls.py中注册刚才子类化的站点地址
终端启动站点
浏览器打开站点可以看到验证码已经添加成功了,但似乎样式不美观,这个就留给大家自己去研究吧,给个思路可以拷贝captcha默认的验证码模板,样式重写即可!
实现点击更换验证码功能
将如下代码加入到login.html模板的底部即可,别忘了引入Jquery.js哦!
到此大功告成,很简单的验证码功能就完成了!
下篇预告 :django实现前后端分离登录功能,并加入验证码功能!
django配置Xadmin
xadmin的使用,首先需要对model进行注册,才能在后台管理中进行操作。
1、在app里创建py文件:adminx(必须这个名称)
2、导入xadmin和models里的类:
其中list_display、search_fields和list_filter
PS:这三个名称是固定的。
对于外键的内容显示,用双下划线分开:
xadmin的全局配置:
在users的adminx里:
1、导入views模块,然后创建类,其中enbale_themes和use_bootswatch名称固定
2、然后进行注册,第一个参数:views.BaseAdminView,第二个是上面创建的类。
3、可以看到主题。
4、创建一个类,其中site_title、site_footer和menu_style名称固定,分别对应后台左上角的标题、底部的名称和左侧选项卡是否收缩。
5、注册:views.CommAdminView和GlobalSettings
6、效果:
7、让选项卡名称变成中文:
app里有个文件apps,加上下面这一行
在init文件里加上这条:default_app_config ="app名称。apps。类名"
结语:以上就是首席CTO笔记为大家介绍的关于django如何直接登录xadmin和怎么用django写一个登陆页面的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。