2017-11-08 12 views
0

私はdjango 1.11.3を使用しています。djangoビューのブール値フィールドの状態をチェックする方法

model.pyファイル:

class Corso(models.Model): 
titolo = models.CharField(max_length=100) 
progressivo= models.BooleanField(default=False) 

f1= models.BooleanField(default=False) 
f2= models.BooleanField(default=False) 

def __str__(self): 
    return str(self.titolo) 

views.pyファイル:

def edit_iscrizioni(request, corso_id): 
corsi = Corso.objects.filter(pk=corso_id) 
tabella= Iscrizione.objects.filter(user=request.user) 
iscrizione=get_object_or_404(Iscrizione, pk=tabella) 

f1=CreaCorsi.objects.values_list("f1") 

print f1 

if request.method == "POST": 
    form = IscrizioneForm(request.POST, instance= iscrizione) 
    if form.is_valid(): 
     iscrizione = form.save(commit=False) 
     iscrizione.user = request.user 
     iscrizione.published_date = timezone.now() 
     iscrizione.corso1_id= corso_id 
     iscrizione.save() 


    return redirect('privata') 

else: 
    form = IscrizioneForm(instance= iscrizione) 
return render(request, 'corsi/edit.html', {'form':form, 'corsi':corsi}) 

このロジックでview.pyを作る方法は?

if Corso.f1==True: 

私はx=Corso.objects.filter(f1=True)を知っていますが、使用したくありません。

+2

あなたの質問は不明です。ロジックを説明する代わりに単にコードをダンプするだけで、あなたを助けることができる人が飛び越えてくるように求めています。 – StarShine

+0

@StarShine私は "IscrizioneForm"を別の方法で保存したいfi corsi.f1 == True of Falce – Ro0t

+0

有効なPythonコードを取得するには空白を編集してください。 – hynekcer

答えて

0

あなたの質問はあいまいですが、私が正しく理解していれば、あなたはこの行で右のオブジェクトを取得している:あなたの目標は彼のf1属性を比較するのであれば

corsi = Corso.objects.filter(pk=corso_id) 

は、なぜ使用しない:

if corsi.f1: 
    #do something when True 

EDIT

申し訳ありませんが、それだった私のミス、あなたはクエリセットを返す使用ライン、

corsi = Corso.objects.filter(pk=corso_id) 

したがって、これを使用します。

corsi = Corso.objects.get(pk=corso_id) 

がどのインスタンスになり、その後、私の条件付きコードを使用します。

もう1つの方法は、組み込みのfirst()を使用する方法です。オブジェクトが存在するかどうかを確認するための検証が追加されます。次に、Noneであれば、何をしたいかを決めなければなりません。このように使用してください:

corsi = Corso.objects.filter(pk=corso_id).first() 
+0

このエラーは私に返されます 'QuerySet'オブジェクトには 'f1'という属性はありません – Ro0t

+0

@ Ro0t編集を参照してください。 – scharette

関連する問題