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