TIL & Todo List/Coding for Entrepreneures
-
Day-5(forloop.counter, custom template tags)TIL & Todo List/Coding for Entrepreneures 2020. 1. 17. 21:03
Category Template - {{ forloop.counter|divisibleby: }} forloop.counter: for loop안에서 반복 횟수에 따라 번호를 출력 {% for item in object_list%} {{ forloop.counter }} - {{ item.title }} {% if forloop.counter|divisibleby:2 %} {% endif %} {% endfor %} {% if forloop.counter|divisibleby:2 %}: counter의 숫자가 divisibleby에 할당된 숫자로 나뉘어 떨어질 경우 True 새로운 "list-group"을 추가한다. 동일한 기능을 'cycle' tag를 이용해 구현할 수 있다. # 화면에 나타내고 싶은 ..
-
Day-4(Form Validation, Dynamic value For ForeignKey, PositionField, prefetch_related, Model manager, RedirectView, 주저리..)TIL & Todo List/Coding for Entrepreneures 2020. 1. 15. 23:32
Form Validation 사용자가 form에서 직접 slug를 입력할 경우 validation이 필요하다. db에 저장하기 위함이 아닌 page 단계에서의 유효성 검사 def clean_: 해당 field에 대한 validation이 일어난다. class CourseForm(forms.ModelForm): class Meta: fields = [ 'slug', ... ] def clean_slug(self): slug = self.cleaned_data.get('slug') qs = Course.objects.filter(slug=slug) # if qs.exists(): # -> course를 업데이트할 때 마다 새로운 slug로 변경해야한다. if qs.count() > 1: raise forms..
-
Day-3(Mixin, method_decorator, staticfiles, form_valid, slugify)TIL & Todo List/Coding for Entrepreneures 2020. 1. 14. 16:19
Login, Member and Staff required Mixin Member required mixin 특정 페이지에 접근 권한을 부여하기 위해 사용될 mixin 구현 동영상은 무료로 제공되거나 가입된 멤버에게만 제공된다. Video 모델에 free & member_required 필드를 추가하고 해당 조건에 따라 영상에 대한 접근을 허용한다. # mixins.py class MemberRequiredMixin(object): def dispatch(self, request, *args, **kwargs): obj = self.get_object() if request.user.is_staff or obj.free: return super().dispatch(request, *args, **kwar..
-
Day-2(Signal, get_object & get_queryset, form)TIL & Todo List/Coding for Entrepreneures 2020. 1. 13. 00:25
Signal(pre_save & post_save)을 이용한 SlugField django의 Signal은 특정 메서드나 함수가 실행될 때 일어나는 신호(signal)를 받아서 추가 작업을 진행할 수 있도록 한다. 예) 모델이 저장될 시점의 전(pre_save), 후(post_save)에 추가적인 작업을 구현할 수 있다. Signal은 signal을 정의한 모델을 사용하는 모든 앱에서 동작한다. videos에 정의된 모델(signal을 포함하는)을 다른 앱에서 저장하거나 업데이트를 할 때 signal이 동작한다. pre_save, post_save 외에 model signal, management signal, request/response signal 등 다양한 signal이 있다. SlugField는..
-
Day-1(Templates, get_context_data)TIL & Todo List/Coding for Entrepreneures 2020. 1. 12. 23:42
기본 Model & View 설정 동영상은 youtube에서 '공유-퍼가기(iframe tag로 구성된 url)'를 이용 - embed_code 필드에 입력된다. models.py from django.db import models # Create your models here. class Video(models.Model): title = models.CharField(max_length=120) embed_code = models.TextField() timestamp = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) def __str__(self): return self.title view.p..