이번 튜토리얼의 목적을 위해서, 코드 스니펫을 저장하는 간단한 snippet 모델을 생성하는걸로 시작하겠습니다.
snippet/models.py 파일에서, 아래와 같이 모델을 작성해 줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
from django.db import models from pygments.lexers import get_all_lexers from pygments.styles import get_all_styles
LEXERS = [item for item in get_all_lexers() if item[1]] LANGUAGE_CHOICES = sorted([item[1][0], item[0] for item in LEXERS]) STYLE_CHOICES = sorted([(item, item) for item in get_all_styles()])
classSnippet(models.Model): created = models.DateTimeField(auto_now_add=True) title = models.CharField(max_length=100, blank=True, default='') code = models.TextField() linenos = models.BooleanField(default=False) language = models.CharField(choices=LANGUAGE_CHOICES, default='python', max_length=100) style = models.CharField(choices=STYLE_CHOICES, default='friendly', max_length=100) classMeta: ordering = ['created']
get_all_lexers 는 순회 가능한 LEXER 들의 정보를 가지고 있고
get_all_styles 는 순회 가능한 style 들의 정보를 가지고 있습니다.
이 두개를 List Comprehension 을 통해, For 문으로 리스트를 만들어 줍니다
모델을 생성해 주었으니, snippet 모델에 대한 첫번재 migrations 을 생성해 줍니다