Django 下拉框

最近在用Django写一个拿快递网站,其中有一个小部分就是下拉框的写法。我在CSDN中看了许多博主的文章但还是没有解决我的问题,巧合之下我写出来了,于是赶快写出来和大家分享一下。当然如果有什么更简单的办法,希望可以交流一下想法哦
model.py

class SendPackage(models.Model):
#这里SADRESS就是网页下拉框显示的内容,('1','2')这里的1是会存在数据库中的,2是展示在页面中的,按道理1和2是不一样的,但是我在后面的处理中无法将1转化成2输出,如果有大神知道,一定要和我说哦
    SADRESS = (
        ('行建轩一栋','行建轩一栋'),
        ('行建轩二栋','行建轩二栋'),
        ('行建轩三栋','行建轩三栋'),
        ('行建轩四栋','行建轩四栋'),
        ('行建轩五栋','行建轩五栋'),
        ('行建轩六栋','行建轩六栋'),
        ('至诚轩一栋','至诚轩一栋'),
        ('至诚轩二栋','至诚轩二栋'),
        ('至诚轩三栋','至诚轩三栋'),
        ('至诚轩四栋','至诚轩四栋'),
        ('弘毅轩一栋','弘毅轩一栋'),
        ('弘毅轩二栋','弘毅轩二栋'),
        ('弘毅轩三栋','弘毅轩三栋'),
        ('弘毅轩四栋','弘毅轩四栋'),
        ('敏行轩','敏行轩')
    )
    SETYPE=(
        ('fs','服饰'),
        ('jj','家具'),
        ('dq','电器'),
        ('mz','美妆护肤'),
        ('ts','图书'),
        ('lx','旅行'),
    )
    sname = models.CharField(u'收件人姓名:',max_length=30)
    saddress = models.CharField(u'住址:',max_length=10,choices=SADRESS)
    sexpressad = models.CharField(u'快递名称:',max_length=30)
    sename = models.CharField(u'提取码:',max_length=15)
    sphone = models.CharField(u'联系方式:',max_length=11)
    setype = models.CharField(u'快递类型:',max_length=2,choices=SETYPE,default=u'服饰')
    class Meta:
        unique_together = ('sname','saddress','sexpressad','sename','sphone','setype')
    def __unicode__(self)://这是python2.7的做法,python3.x是str哦,不要抄错了
        return self.sname

admin.py


class SendPackageAdmin(admin.ModelAdmin):
    list_display = ('sname','sexpressad','sename','sphone','setype')

admin.site.register(SendPackage,SendPackageAdmin)

这里是为了在后台可以展示出来,便于管理

form.py

class SendPackageform(forms.Form):
    SADRESS = (
        ('行建轩一栋','行建轩一栋'),
        ('行建轩二栋','行建轩二栋'),
        ('行建轩三栋','行建轩三栋'),
        ('行建轩四栋','行建轩四栋'),
        ('行建轩五栋','行建轩五栋'),
        ('行建轩六栋','行建轩六栋'),
        ('至诚轩一栋','至诚轩一栋'),
        ('至诚轩二栋','至诚轩二栋'),
        ('至诚轩三栋','至诚轩三栋'),
        ('至诚轩四栋','至诚轩四栋'),
        ('弘毅轩一栋','弘毅轩一栋'),
        ('弘毅轩二栋','弘毅轩二栋'),
        ('弘毅轩三栋','弘毅轩三栋'),
        ('弘毅轩四栋','弘毅轩四栋'),
        ('敏行轩','敏行轩')
    )
    SETYPE=(
        ('fs','服饰'),
        ('jj','家具'),
        ('dq','电器'),
        ('mz','美妆护肤'),
        ('ts','图书'),
        ('lx','旅行'),
    )
    sname = forms.CharField(label=u'收件人姓名',max_length=30)
    saddress = forms.ChoiceField(label=u'住址',widget=forms.Select(),choices=SADRESS,initial=SADRESS[0])
    sexpressad = forms.CharField(label=u'快递名称:',max_length=30)
    sename = forms.CharField(label=u'提取码:',max_length=15)
    sphone = forms.CharField(label=u'联系方式:',max_length=11,initial=u'如:手机号码或QQ号')
    setype = forms.ChoiceField(label=u'快递类型:',widget=forms.Select(),choices=SETYPE,initial=SETYPE[0])

看见上面的ChoiceField,表示选择;widget表示表单的标签(我觉得是这样的);initial表示初始化选择 这里[0]表示行建轩一栋

后面的view就是自己想怎么写就怎么写啦,最后来一张不加任何页面渲染的图
这里写图片描述

个人见解,如有错误请帮忙指出,谢谢

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值