- Vue
- SQL
- update
- 그리디
- migrations
- regexp
- 쟝고
- 큐
- 이진트리
- 스택
- M:N
- Article & User
- Queue
- 백트래킹
- ORM
- Tree
- stack
- delete
- create
- 뷰
- drf
- DB
- distinct
- 트리
- Django
- 통계학
- N:1
- 완전검색
- count
- outer join
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
목록전체 글 (374)
데이터 분석 기술 블로그

User(M) - User(N)0명 이상의 회원은 0명 이상의 회원과 관련이 있습니다. 즉, 회원은 0명 이상의 팔로워를 가질 수 있고, 0명 이상의 다른 회원들을 팔로잉할 수 있습니다.ManyToManyFiled를 작성합니다.참조 : 내가 팔로우하는 사람들(팔로잉, followings)역참조 : 상대방 이밪에서 나는 팔로워 중 한 명 (팔로워, followers)바뀌어도 상관 없으나 관계 조회 시 생각하기 편한 방향으로 정한 것입니다.# accounts/models.pyclass User(AbstractUser): followings = models.ManyToManyField('self', symmetraicl=False, related_name='followers')Migrations 진행 후..

프로필 페이지각 회원의 개인 프로필 페이지에 팔로우 기능을 구현하기 위해 프로필 페이지를 먼저 구현해 봅시다.url을 작성합니다.# accounts/urls.pyurlpatterns = [ ... path('profile//', views.profile, name='profile'),]view 함수를 작성합니다.# accounts/views.pyfrom django.contrib.auth import get_user_modeldef profile(request, username): User = get_user_model() person = User.objects.get(username=username) context = { 'person': person, } ..

좋아요 기능 구현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..