Django的后台功能是很强大的,我先简单的写一点(本人新手)。
1,先创建数据库(我用的python2.7):
在字段里显示的汉字是为了方便后台管理,class是在后台以汉字的形式显示表名,为了让通过1,2,3,来判断类型的以下拉框显示,
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)
problem_type=((u'1',u'儿童'),(u'2',u'少年'),(u'3'u'青年‘)) #和下面的choices配合可以在后天以下拉按钮显示
Ques_type=models.BooleanField(u'题的类型',default=False,choices=problem_type)#为False时为单选题
class Meta:
verbose_name = '问题表'
verbose_name_plural = '问题表'
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)