Django 1.6,如何设置CreateView的字段默认值 [英] Django 1.6, how to set field default value for CreateView

查看:278
本文介绍了Django 1.6,如何设置CreateView的字段默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

models.py

models.py

class App(models.Model):
    name = models.CharField(max_length=10, default='')
    desc = models.CharField(max_length=10, default='') 

views.py

class AppCreate(CreateView):
    template_name = "app/add.html"
    model = App 

模板

<!DOCTYPE html>
<html lang="en">
<head>   
    <meta charset="UTF-8">
    <title></title>
</head>  
<body>   
    <form action="" method="POST">
    {% csrf_token %}                                                         
    {{form}}
    <input type="submit" value='submit'>
    </form>
</body>  
</html>  

这里有两个问题:


  1. 为什么我设置模型字段默认值,但它在数据库中不起作用?我检查sql语句,没有默认值设置

  1. Why I set model field default value, but it doesn't work in database? I check sql statement, no default value set

如果要将desc设置为可选字段(html中的desc字段不是强制性的),我做了什么

If want to set desc as an optional field (desc field in html is not mandatory), what shoud I do?


推荐答案

默认值实际上纠正了可选字段的需要。如果您没有输入任何值,则不会收到错误,但默认值是存储的,当然这是一个空字符串(值)。要明确指定可选项,请使用 blank = True

Default value actually rectifies the need for the optional field. If you do not enter any value, you dont get an error, but the default value is stored, which is of course an empty string(value). To specify optional explicitly, use blank=True

desc = models.CharField(max_length=10, blank=True)

可以使用

这篇关于Django 1.6,如何设置CreateView的字段默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆