바뀜

676 바이트 추가됨 ,  2021년 6월 22일 (화) 12:59
편집 요약 없음
3번째 줄: 3번째 줄:     
기본적으로 <code>ChoiceField</code> 는 따로 없기때문에 CharField에서 옵션을 사용하는 방식으로 구현한다.
 
기본적으로 <code>ChoiceField</code> 는 따로 없기때문에 CharField에서 옵션을 사용하는 방식으로 구현한다.
 +
 +
혹은 ForeignKey로 다른 모델과 연결해두면 해당 모델 안의 객체에서만 선택할 수 있다.
    
== 정의 ==
 
== 정의 ==
15번째 줄: 17번째 줄:  
         )
 
         )
 
     선택속성 = models.CharField(choices=선택지, max_length=5, blank=False)  # 옵션은 알아서.
 
     선택속성 = models.CharField(choices=선택지, max_length=5, blank=False)  # 옵션은 알아서.
 +
    # max_length 옵션은 DB에 저장되는 데이터에 걸리는 제약.
 +
    선택속성2 = models.ForeignKey(선택모델,on_delete=models.CASCADE, null=True, blank=True)
 +
</syntaxhighlight>
 +
 +
== 탬플릿에서 사용 ==
 +
<syntaxhighlight lang="html+django">
 +
<select class='알아서' data-title="제목" data-style="알아서" data-menu-style="알아서">
 +
    {% for x,y in form.fields.선택속성.choices %}
 +
      <option value="{{ x }}"{% if form.fields.gender.value == x %} selected{% endif %}>{{ y }}</option>
 +
    {% endfor %}
 +
    </select>
 
</syntaxhighlight>
 
</syntaxhighlight>
   −
=== 탬플릿에서 출력 ===
+
=== 탬플릿에서 선택값 출력 ===
 
<nowiki>{{모델.속성}}</nowiki> 이 형태로 쓰면 DB에 기록된 형태의 데이터를 보여주고,
 
<nowiki>{{모델.속성}}</nowiki> 이 형태로 쓰면 DB에 기록된 형태의 데이터를 보여주고,
    
<nowiki>{{모델.get_속성명_display}}</nowiki>로 쓰면 사용자에게 보여지는 형태의 데이터를 보여준다.
 
<nowiki>{{모델.get_속성명_display}}</nowiki>로 쓰면 사용자에게 보여지는 형태의 데이터를 보여준다.
 
[[분류:장고 모델]]
 
[[분류:장고 모델]]