搜索

django怎么获取管理员的信息?

发布网友 发布时间:2024-10-23 19:08

我来回答

1个回答

热心网友 时间:2024-10-24 01:10

导读:今天首席CTO笔记来给各位分享关于django怎么获取管理员的信息的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

Django1.4怎么在Model里获取当前用户

这个在model是做不到的,你可以看一下django的session,大概的用法如下

#保存session

request.session[user.id]?=?1

#获取session

login_counter?=?request.session[user.id]

#删除session

request.session[user.id]

希望能够帮到你

djangoforms怎么获取登录用户

Django获取登陆用户的手段就是request.user。

如果你想传给form字段,可以先做一个model的object实例,把request.user传给这个object实例的相关字段,然后把这个实例传给forms实例即可。

django怎么在admin里显示数据库的内容

操作方法:首先要运行pythonmanage.pycreatesuperuser命令来创建一个管理员账户。

然后在url中输入/admin即可到达管理员登录页,登录之后会发现并没有数据库中要显示的项目,因为我们还没有注册。

接下来我们注册要在admin中管理的数据模型;在admin.py中注册模型。然后刷新页面,即可看到ContactMessage这个数据表了,可以在里边增删进行简单的增删改查。

Django创建超级管理员

摘要:进入项目路径:pythonmanage.pycreatesuperuser按照提示输入相应的用户名,邮箱和密码即可

进入项目路径:

pythonmanage.pycreatesuperuser?

按照提示输入相应的用户名,邮箱和密码即可

以上是Django创建超级管理员的内容。

如何正确使用DjangoAdmin

1.DjangoAdmin不适合最终用户使用

Djangoadmin是为管理员设计的,而不是给最终用户使用的.Djangoadmin的存在是为了方便管理员添加修改删除数据和管理站点任务.

2.列表显示

如上图,因为model的默认文本显示是xxxobject,所以在admin列表页中默认显示的也是xxxobject.如果希望显示更有用的信息我们可以进行如下设置:

为model写__unicode__()方法

如果希望model在列表页中显示更多项,则需要使用list_display

__unicode()__例子:

#models.py

fromdjango.dbimportmodels

classArticle(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):

returnself.title

#admin.py

fromdjango.contribimportadmin

from.modelsimportArticle

admin.site.register(Article)

结果:

如果希望显示其他项:

#admin.py

fromdjango.contribimportadmin

from.modelsimportArticle

classArticleAdmin(admin.ModelAdmin):

list_display=('title','is_published')

admin.site.register(Article,ArticleAdmin)

结果:

3.为ModelAdmin增加动作

我们可以为ModelAdmin增加method或function,以此使admin界面更符合我们的需求.

例如,我们希望在在admin界面中显示一个明确地URL,但当我们在model中定义了get_absolute_url()方法后,djangoadmin默认给我们的却是一个与我们想要的URL完全不同的URL.于是我们可以通过以下方法定义该URL:

#admin.py

fromdjango.contribimportadmin

fromdjango.core.urlresolversimportreverse

fromdjango.utils.htmlimportformat_html

from.modelsimportArticle

classArticleAdmin(admin.ModelAdmin):

list_display=('title','is_published',)

readonly_fields=('show_url',)

defshow_url(self,instance):

url=reverse('article_detail',kwargs={'pl':instance.pk})

response=format_html("""ahref="{0}"文章预览preview/a""",url)

returnresponse

show_url.short_description=u"文章预览"

#显示HTMLtag

#对于用户提交的数据,永远不要这么设置!

show_url.allow_tags=True

注意,allow_tags属性,其默认值是False,如果错误使用将会带来安全隐患.如果设置为True,

在admin中会允许显示HTMLtag.因此我们使用的原则是,对于用户输入的信息,永远不设置allow_tags=True.

只有当其内容是系统生成,用户无法修改的时,才能使用allow_tags=True.

4.不在多用户编辑环境使用list_editable

djangoadmin为我们提供了在列表页修改model属性的功能,这样方便管理员一次修改多个属性.如果管理员只有一个人的话,

那就没问题,但在多用户环境中时,却是会存在一个很严重的潜在问题.因为在list页提交的修改信息,记录的是位置,而不是model的主键.

举个例子,文章列表页默认按照创建顺序逆序排列,用户A打开文章列表页,并开始修改,同时用户B增加了一篇新文章,此时,

当用户A提交修改后其后的文章信息都会出错.

结语:以上就是首席CTO笔记为大家整理的关于django怎么获取管理员的信息的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top