Django数据库不应该接受空值

时间:2013-11-13 06:11:06

标签: python django

我有一个包含3个字段的模型,即namequalificationkeyskillskeyskills字段的输入为逗号分隔值,例如"c,c++,java"name来自文本框,qualification来自下拉菜单。

我想显示要存储在数据库中单独行中的keyskills。我已经做了。但是,当我为输入提供一个空值(例如"c,c++,,java")时,数据库不应接受其间的空值 - 它应该转移到下一个值"java"

我的 models.py

class form1(models.Model):
    name=models.CharField(max_length=20)
    qualification=models.CharField(max_length=20)
    keyskills=models.CharField(max_length=50)
    def __unicode__(self):
        return self.name,self.qualification,self.key

views.py

def formdisplay(request):
    if request.method=='POST':
        i1=request.POST.get("input1")
        i2=request.POST.get("drop1")
        i3=request.POST.get("input2")
        var=i3.split(",")
        for i in var:
            form1(name=i1,qualification=i2,keyskills=i).save()
        return HttpResponseRedirect('/formdisplay')
    else:
        return render(request,"formdisplay.html"

formdisplay.html

<html>
<head>
</head>
<body>
<form action="." method="post">{% csrf_token %}
<input type="text" name="input1">
<select name="drop1">
<option>B.E cse</option>
<option>B.E ece</option>
<option>B.E eee</option>
</select>
<input type="text" name="input2">
<input type="submit" value="save">
</form>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

如果我理解正确,那么你只需添加一个if条件来检查字符串是否为空:

<强>演示:

>>> s = "c,c++,,java"
for i in s.split(','):
    if i:
        print i

c
c++
java

因此,对于您的代码,它将是:

for i in var:
    if i:
       form1(name=i1,qualification=i2,keyskills=i).save()

答案 1 :(得分:0)

if i3 != None:
  #do something etc
elif i2 != None:
  #do something etc

我认为您正在尝试检查空值,然后执行上述操作 - 只需检查它是否为无