django : BooleanField, 기본값을 true로 설정하는 방법은 무엇입니까?
django에서 BooleanField를 사용하고 있습니다. 기본적으로 생성되는 확인란은 선택되지 않은 상태입니다. 기본적으로 상태를 선택하고 싶습니다. 어떻게해야합니까?
바닐라 양식 (ModelForm이 아님)을 사용하는 경우 필드 초기 값 ( https://docs.djangoproject.com/en/2.2/ref/forms/fields/#django.forms.Field)을 설정할 수 있습니다 . 이니셜 ) 좋아요
class MyForm(forms.Form):
my_field = forms.BooleanField(initial=True)
ModelForm을 사용하는 경우 모델 필드 ( https://docs.djangoproject.com/en/2.2/ref/models/fields/#default ) 에 기본값을 설정 하여 결과 ModelForm에 적용 할 수 있습니다. , 처럼
class MyModel(models.Model):
my_field = models.BooleanField(default=True)
마지막으로, 필드가 기본적으로 선택 될지 여부를 런타임에 동적으로 선택하려면 초기화 할 때 양식에 초기 매개 변수를 사용할 수 있습니다 .
form = MyForm(initial={'my_field':True})
from django.db import models
class Foo(models.Model):
any_field = models.BooleanField(default=True)
django == 1.11을 사용하고 있습니다. 가장 많은 표를 얻은 대답은 실제로 잘못되었습니다. django에서 문서를 확인하면 다음과 같이 말합니다.
initial-이 필드의 초기 표시에 사용할 값입니다. 이 값이되어 있지 데이터가 주어지지 않는 경우, 대체로서 사용된다.
그리고 양식 유효성 검사 프로세스의 코드를 자세히 살펴보면 각 필드에 대해 양식이 실제 값을 얻기 위해 위젯 이라고 부르는 것을 value_from_datadict
알 수 있습니다. 그래서 여기가 기본값을 주입 할 수있는 곳입니다.
에서이를 수행하려면 BooleanField
에서 상속하고 CheckboxInput
기본값 value_from_datadict
과 init
기능을 재정의 할 수 있습니다 .
class CheckboxInput(forms.CheckboxInput):
def __init__(self, default=False, *args, **kwargs):
super(CheckboxInput, self).__init__(*args, **kwargs)
self.default = default
def value_from_datadict(self, data, files, name):
if name not in data:
return self.default
return super(CheckboxInput, self).value_from_datadict(data, files, name)
그런 다음 BooleanField
.
class ExampleForm(forms.Form):
bool_field = forms.BooleanField(widget=CheckboxInput(default=True), required=False)
from django.db import models
class Nepal(models.Model)
Is_active = models.BooleanField(default=True)
참고 URL : https://stackoverflow.com/questions/5190313/django-booleanfield-how-to-set-the-default-value-to-true
'programing' 카테고리의 다른 글
Javascript / jQuery의 배열에서 여러 요소 제거 (0) | 2020.08.29 |
---|---|
HTML 요소에서 끌어서 놓기를 비활성화 하시겠습니까? (0) | 2020.08.29 |
row_number ()를 사용한 SQL 업데이트 (0) | 2020.08.29 |
Android Studio에서 "기호를 확인할 수 없음"이라고 말하지만 프로젝트가 컴파일됩니다. (0) | 2020.08.29 |
입력 인수의 형식 지정 argparse python (0) | 2020.08.29 |