Django admin 后台操作数据库以问卷调查为例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django admin 后台操作数据库以问卷调查为例相关的知识,希望对你有一定的参考价值。

Django的后台功能是很强大的,我先简单的写一点(本人新手)。

1,先创建数据库(我用的python2.7):

  在字段里显示的汉字是为了方便后台管理

class Thequestion(models.Model):
name=models.CharField(u‘问卷名‘,max_length=30)
number=models.IntegerField(u‘问卷填写人数‘,default=0)
create_time=models.DateTimeField(auto_now_add=True)

def __unicode__(self):
return self.name

class Questionproblem(models.Model):
questions=models.ForeignKey(Thequestion)
problem_name=models.CharField(u‘题的名称‘,max_length=200)
Ques_type=models.BooleanField(u‘题的类型‘,default=False)#为False时为单选题


def __unicode__(self):
return self.problem_name

class Choice(models.Model):
question=models.ForeignKey(Questionproblem)
choice_text=models.CharField(u‘选项名‘,max_length=200)
votes=models.IntegerField(u‘选择的个数‘,default=0)

def __unicode__(self):
return self.choice_text

2,在admin.py里进行操作,暂时不知道如何将问卷名+题+选项整合到同一个页面上
class QuestionInline(admin.TabularInline):#为了在问卷页面输入你的问卷题目这是默认有6题
model = Questionproblem
extra = 6


class ChoiceInline(admin.TabularInline):每题有4个选项
model = Choice
extra = 4


class QuestiionAdmin(admin.ModelAdmin):
fieldsets = [
(None, {‘fields‘: [‘problem_name‘]}),#在后台可以看到问题名称
(None, {‘fields‘: [‘Ques_type‘]}),#题的类型
]
inlines = [ChoiceInline]#题对应的选项


class TheAdmin(admin.ModelAdmin):
fieldsets = [
(None, {‘fields‘: [‘name‘]}),# 问卷的名称
(None, {‘fields‘: [‘number‘]}),#问卷答题数量

]
inlines = [QuestionInline]#问卷对应的题


admin.site.register(Questionproblem, QuestiionAdmin)
admin.site.register(Thequestion, TheAdmin)
admin.site.register(Choice)
 




以上是关于Django admin 后台操作数据库以问卷调查为例的主要内容,如果未能解决你的问题,请参考以下文章

django之admin后台管理

四 Django框架,models.py模块,数据库操作——创建表数据类型索引admin后台,补充Django目录说明以及全局配置文件配置

django-17.admin后台管理

Django Admin Cookbook-14如何在Django Admin后台移除“删除所选”操作

08-Django-基础篇-admin管理后台

Django admin后台使用simpleui美化(以学生管理系统为例)