프로그래밍/Django & Flask
-
[Django] 참조 & 역참조프로그래밍/Django & Flask 2020. 11. 25. 12:17
좋아요 기능을 만들기 위해 공부하고 있는데 역참조가 나와서 잠깐 정리!! 다음과 같은 Model이 두 개가 있다고 가정해보자. 집 model은 살고있는 사람, 방의 개수와 같은 정보가 필요하다. 그 중 사람 column은 '사람' 모델을 Foreign Key로 지정한 값이다. 사람 model은 이름, 나이와 같은 정보를 가지고 있다. 참조 위와 같은 모델이 존재할 때, 집 모델에서 사람(Foreign Key)를 불러들이는 걸 참조라고 한다 역참조 위와 반대로 사람 모델이 집 모델을 불러들일 때를 역참조라고 한다. 역참조를 사용하는 방법엔 1) _set manager를 사용하는 방법이 있다. - person.house_set.all (참조되고 있는 모델(사람).참조하는 모델(집)_set.all ) 2) r..
-
[Django] no such table: app_user프로그래밍/Django & Flask 2020. 11. 24. 20:32
User model을 커스터마이징 하기 위해 AbstractUser를 사용해 MyUser를 만들어줬다. 그 다음 migrations, migrate 실행한 뒤 admin을 실행했더니 다음과 같은 에러가 발생했다........ㅜㅜ 저번에도 발생해서 프로젝트를 다 접었었는데 ㅎ 또 발생!!!!!!!!!!!! 모든 migrations log파일을 지우고 다시해도 똑같다...... 꼭 해결한다 이놈 - 해결 db.sqlite3 파일을 지우고 다시 migrations, migrate하니 해결됐다!!!
-
[Django] url 태그 인자 2개 보내기프로그래밍/Django & Flask 2020. 11. 24. 12:14
댓글을 삭제하는 기능을 만들 때 1) 해당 포스트의 id (해당 포스트로 다시 redirect 해야하므로) 2) 댓글의 id 가 필요했다. 이렇게 두 가지 인자를 처리하기 위해선 다음과 같이 진행해야 한다. 먼저 템플릿은 다음과 같이 구성한다. 삭제 인자를 두 개를 보냈으므로, url에서도 인자 두 개를 모두 사용해야 한다. (인자를 받는 순서가 중요하므로 이름은 자유롭게 설정해도 된다) path('reply_delete//', views.comment_delete, name="comment_delete"), 뷰는 다음과 같이 구성된다 def comment_delete(request, p_id, r_id): reply = Reply.objects.get(id=r_id) reply.delete() retu..
-
[Django] 각 포스트마다 댓글 출력하기(~ing)프로그래밍/Django & Flask 2020. 11. 23. 19:38
댓글 기능 구현하기! 처음엔 단순하게 생각했다. 글쓰기처럼 모델을 생성하되 Post의 id를 foreign key로 삼아준다. 그리고 출력할 때 Reply의 posting_id와 Post의 id가 같은 것을 출력해주면 되지 않을까?? 그래서 # Post/models.py class Reply(models.Model): posting_id = models.ForeignKey(Post, on_delete=models.CASCADE, db_column='posting_id') reply_writer = models.CharField(max_length=30) reply_content = models.TextField() reply_date = models.DateTimeField(default=datetime..
-
[Django] 글쓰기 기능 HTML Form으로 만들기 vs Django Form으로 만들기프로그래밍/Django & Flask 2020. 11. 22. 21:38
장고에서 글쓰기 기능을 만들 수 있는 방법은 2가지가 있다 (내가 아는것만 ㅎ) 1. HTML Form으로 만들기 2. Django가 제공해주는 Form으로 만들기 오늘은 이 두가지 기능을 비교해보려고 한다! HTML form으로 만들기 views.py def create(request): if request.method == 'GET': return render(request, 'post/create.html') elif request.method == 'POST': user_id = request.session.get('user_id') res_data = {} if not (request.FILES.get('posting_photo') and request.POST['posting_content']..
-
[Django Project] 게시글 올리기 & 출력하기프로그래밍/Django & Flask 2020. 11. 3. 22:52
과정을 진행하기 전에 유저에게 사진을 입력받고 싶을 땐 media를 등록해야 한다! 게시글 올리기 1. models.py 모델 생성 및 admin 등록 # models.py class imginfo(models.Model): id = models.AutoField(primary_key= True) # 자동 id 부여 nickname = models.CharField(max_length=50) # 사용자 닉네임 like_nums = models.IntegerField(max_length=None) # 좋아요 수 photo = models.ImageField(upload_to="img") # 사진 content = models.CharField(max_length=400) # 글 내용 date = model..