我有一个包含3个字段的模型,即name
,qualification
和keyskills
。 keyskills
字段的输入为逗号分隔值,例如"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>
答案 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
我认为您正在尝试检查空值,然后执行上述操作 - 只需检查它是否为无