2011-03-04 19 views

cevap

124

Eğer sadece bir vanilya formu (bir ModelForm) kullanıyorsanız, bir ModelForm kullanıyorsanız, size

class MyForm(forms.Form): 
    my_field = forms.BooleanField(initial=True) 

gibi bir alan başlangıç ​​değeri (http://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.Field.initial) ayarlayabilirsiniz, bunlardan birini varsayılan ayarlayabilirsiniz Sonuçta oluşan ModelForm için geçerli olan model alanında (http://docs.djangoproject.com/en/dev/ref/models/fields/#default) değer. dinamik olarak alan varsayılan olarak seçilecektir olsun veya olmasın, çalışma zamanında seçmek isterseniz

Son olarak, forma başlangıç ​​parametresini kullanabilirsiniz zaman initialize it:

form = MyForm(initial={'my_field':True}) 
+1

sayesinde istenilen değer koydu. – Paco

118
from django.db import models 

class Foo(models.Model): 
    any_field = models.BooleanField(default=True) 
+1

Bu belge nerede? Belgedeki "ilk" ifadesinin (ilişkisiz form için), "varsayılan" değil – Medorator

+4

[Burada] (https://docs.djangoproject.com/en/dev/ref/models/fields/#default) – user856358

+4

Bu cevap, cevaplayıcı bir form alanı değil, bir model alanı kullanıyor. Farkın olduğu yer burası. Bu beni tetikledi çünkü sadece varsayılan kwarg'i görmek için atladım. Varsayılan geçerli bir form değil.Form kwarg. Sadece bu cevabı biraz temizlemek için bunu yayınlamak istedim, çünkü ona 0 yorumu var. –

4
from django.db import models 

class Foo(models.Model): 
    any_field = models.BooleanField(default=True) 

Sorunumu çözme, formlar yerine modellerde kullanmam gerekti

0

models.py:hemen belgelerinde bunu bulamadık, `:

Class a(models.model): 
    Var = models.BooleanField(default=True) 
Sadece` bir şekilde = MyForm (başlangıç ​​= {doğru 'my_field'}) için parantez içinde

İlgili konular