django搭建web (四) models.py

demo

该demo模型主要是用于问题,选择单个或多个答案的问卷形式应用

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
# Create your models here.
choice_style = (
        ('r','radio'),
        ('c','checkbox')
    )

class myQuestion(models.Model):
    question_text = models.CharField(max_length = 600)
    question_style = models.CharField(max_length = 1,choices = choice_style)
   
    def __unicode__(self):
    return self.question_text

class myAnswer(models.Model):
    answer_text = models.CharField(max_length = 200)
    questions = models.ForeignKey(myQuestion)
    answer_votes = models.IntegerField(default = 0)
    def __unicode__(self):
        return self.answer_text

同时!要修改admin.py中的字段,或者注释起来

class myQuestion(admin.ModelAdmin):
    # fieldsets = [
    #     (None,               {'fields': ['question_text']}),
    #     ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
    # ]
    inlines = [ChoiceInline]
    #list_display = ('question_text', 'pub_date')

这里创建了两个模型,都是继承自models

在第一个模型myQuestion中,max_length表示此处可填字段最大长度,
question_style = models.CharField(max_length = 1,choices = choice_style)
一句choices = choice_style为模型创建了一个下拉框,choice_style是前面代码定义的一个tuple如下所示:

1214974-20171026232037711-879374817.png

下句是为了问题不展开时,可以以本question_text作为标题显示
def __unicode__(self):
    return self.question_text
以下语句是建立一对多关系(外键),一个答案可对应多个问题,具体可查---ORM
questions = models.ForeignKey(myQuestion)
以下语句设置了一个int型变量answer_votes,并初始化为0
answer_votes = models.IntegerField(default = 0)

转载于:https://www.cnblogs.com/maskerk/p/7740138.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值