설계를 하는 부분이 나오는데 이 부분에서 Django의 특성을 잘 살려서 클래스형뷰를 사용하기 위해서 특히 제너럴뷰를 사용하는데 미리 url과 이름, 클래스명을 생각해서 사용하는게 좋다는 점 (당연하지만)과 그 노하우를 배울 수 있었다.
제너럴뷰는 종류가 많지만 이에 대해서 자세히 알고 계신 듯 하다. 대화 도중 틈틈히 알려주신 꿀팁을 간단히 적어보았다.
모델에 데이터가 저장되기 전에 데이터 값이 없는데 기본값을 지정할려면 default를 사용하는 방법도 있지만 이렇게
class Todo(models.Model):
name = models.CharField('name', max_length=10, blank=True)
todo = models.CharField('todo', max_length=50)
def __str__(self):
return self.todo
def save(self, force_insert=False, force_update=False, using=None,
update_fields=None):
if not self.name:
self.name = '이동현'
super().save()
위의 save는 Model 클래스에 있는 save 메서드를 다시 상속해서 불러왔다. 그리고 기준을 넣어서 만약에 이름이 없으면 이동현이라는 이름을 넣어라는 식으로 제작했다.
그리고 상위에 있는 save를 실행시켜줘야하는 점.
내가 배우기로 Django ORM은 위와 같은 save 메서드를 통해서 최종적으로 DB에 DDL을 보내기 때문에 이런식식으로 불러와야한다. (조금 더 자세히 알아볼 필요가 있다.)