0

nameと の 3 つのフィールドを持つモデルがqualificationありkeyskillsます。フィールドには、テキスト ボックスやドロップダウン メニューなどからカンマ区切りのkeyskills値を入力します。"c,c++,java"namequalification

keyskillsデータベースの別の行に格納されるを表示したい。私はそれをやった。ただし、入力に 1 つの空の値 (たとえば、"c,c++,,java") を指定すると、データベースは間にある空の値を受け入れてはならず、"java"代わりに次の値に移動する必要があります。

私のモデル.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

ビュー.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>
4

2 に答える 2

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

null値をチェックしようとしていると思います。次に、上記のようなことを行います-それが何もないかどうかを確認してください

于 2013-11-13T06:16:58.823 に答える
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()
于 2013-11-13T06:15:27.207 に答える