- Vue
- ORM
- Tree
- delete
- Queue
- create
- Django
- regexp
- migrations
- 완전검색
- 통계학
- N:1
- count
- outer join
- DB
- stack
- update
- 큐
- 쟝고
- 그리디
- 스택
- 트리
- 백트래킹
- SQL
- Article & User
- distinct
- 이진트리
- drf
- 뷰
- M:N
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
목록전체 글 (300)
데이터 분석 기술 블로그
좋아요 기능 구현url 작성합니다.# articles/urls.pyurlpatterns = [ ... path('/likes/', views.likes, name='likes'),]view 함수를 작성합니다.# articles/views.py@login_requireddef likes(request, article_pk): article = Article.objects.get(pk=article_pk) if request.user in article.like_users.all(): article.like_users.remove(request.user) else: article.like_users.add(request.user) return redi..
1. 모델 관계 설정Many to Many relationships (N:M or M:N)한 테이블의 0개 이상의 레코드가 다른 테이블의 0개 이상의 레코드와 관련된 경우 양쪽 모두에서 N:1 관계를 갖습니다.Article(M) - User(N)0개 이상의 게시글은 0명 이상의 회원과 관련이 있습니다. 게시글은 회원으로부터 0개 이상의 좋아요를 받을 수 있고, 회원은 0개 이상의 게시글에 좋아요를 누를 수 있습니다.ManyToManyField 작성하기# articles/models.pyclass Article(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) like_users =..
# 변경 전doctor.patient_set.all()# 변경 후doctor.patients.all()ManyToManyField(to, **options)Many to many 관계 설정 시 사용하는 모델 필드입니다.1. ManyToManyField's Arguments1-1 'related_name' arguments역참조시 사용하는 manager name을 변경합니다.class Patient(models.Model): doctors = models.ManyToManyField(Doctr, related_name='patients') name = models.TextField()1-2 'symmetrical' argumentsManyToManyField가 동일한 모델을 가리키는 정의에서만 ..
'through' argument중개 테이블에 '추가 데이터'를 사용해 M:N 관계를 형성하려는 경우에 사용합니다.through 설정 및 Reservation Class를 수정합니다. 이제는 예약 정보에 "증상"과 "예약일"이라는 추가 데이터가 생깁니다.class Patient(models.Model): doctors = models.ManyToManyField(Doctor, throug='Reservation') name = models.TextField() def __str__(self): return f'{self.pk}번 환자 {self.name}'class Reservation(models.Model): doctor = models.ForeignKey(D..
Django에서는 'ManyToManyField'로 중개모델을 자동으로 생성합니다.1. Django ManyToManyField환자 모델에 ManyToManyField를 작성합니다.# hospitals/models.pyclass Patient(models.Model): # ManyToManyField 작성 doctors = models.ManyToManyField(Doctor) name = models.TextField() def __str__(self): return f'{self.pk}번 환자 {self.name}'# Reservation Class 주석 처리데이터베이스 초기화 후 Migration 진행 및 shell_plus 실행합니다.생성된 중개 테이블 h..
1. 예약 모델 생성환자 모델의 외래 키를 삭제하고 별도의 예약 모델을 새로 생성합니다.예약 모델은 의사와 환자에 각각 N:1 관계를 갖습니다.# hospitals/models.py# 외래 키 삭제class Patient(models.Model): name = models.TextField() def __str__(self): return f'{self.pk}번 환자 {self.name}'# 중개모델 작성class Reservation(models.Model): doctor = models.ForeignKey(Doctor, on_delete=models.CASCADE) patient = models.ForeignKey(Patient, on_delete=models..
1. Many to many relationships (N:M or M:N)한 테이블의 0개 이상의 레코드가 다른 테이블의 0개 이상의 레코드와 관련된 경우입니다.양쪽 모두에서 N:1 관계를 가집니다.1-1. M:N 관계의 역할과 필요성 이해하기'병원 진료 시스템 모델 관계'를 만들며 M:N 관계의 역할과 필요성을 이해합니다.환자와 의사 2개의 모델을 사용하여 모델 구조 구상합니다.2. N:1의 한계의사와 환자 간 모델 관계 설정한 명의 의사에게 여러 환자가 예약할 수 있다고 설계합니다.# hospital/models.pyclass Doctor(models.Model): name = models.TextField() def __str__(self): return f'{sel..
1. 댓글 DELETE댓글 삭제 요청 사용자와 댓글 작성 사용자를 비교하여 본인의 댓글만 삭제 할 수 있도록 합니다.# articles/views.pydef commets_delete(request, article_pk, comment_pk): comment = Comment.objects.get(pk=comment_pk) if request.user == comment.user: comment.delete() return redirect('articles:detail', article_pk)해당 댓글의 작성자가 아니라면, 댓글 삭제 버튼을 출력하지 않도록 합니다. {% for comment in comments %} {{ comment.user }} - {..