오늘은 머신러닝 프로젝트 중 에서도 먼저 장고 기능을 먼저 구현 하였다.
나는 게시글 작성,삭제,수정 기능 을 만드는 부분을 맡았다.
처음에 는 잘 진행 되다가
삭제 부분에서 오류가 계속 나서 확인했더니.
오타 였다...
또 수많은 오류들이 발생 했다.
프로젝트 중이라 자세하게 리뷰 하기 힘들다.
view.py
from contents.models import Feed, Comment
from django.shortcuts import get_object_or_404, redirect, render
from django.contrib.auth.decorators import login_required
from django.views.generic import ListView, TemplateView
from django.contrib import messages
from django.db.models import Q
#게시글 작성
@login_required
def post(request):
if request.method =="GET":
return render(request, "upload.html")
elif request.method == "POST":
my_feed = Feed()
my_feed.title =request.POST.get("title")
my_feed.content =request.POST.get("content")
my_feed.user =request.user
my_feed.like = 0
my_feed.image = request.FILES['feed_image']
my_feed.category = request.POST.get('category', '')
my_feed.save()
tags = request.POST.get('tag', '').split(',')
for tag in tags:
tag = tag.strip()
if tag != '': # 태그를 작성하지 않았을 경우에 저장하지 않기 위해서
my_feed.tags.add(tag)
return redirect('/')
# 게시글 상세 페이지
def post_detail(request, id):
my_feed = Feed.objects.get(id=id)
comment = Comment.objects.filter(feed_id=id).order_by('-created_at')
context = {
'feeds':my_feed,
'comments': comment
}
return render(request, 'index.html', context)
# 게시글 삭제
def post_delete(request, id):
post = Feed.objects.get(id=id)
post.delete()
return redirect('/')
#게시글수 상세
def post_edit(request, id):
post = Feed.objects.get(id=id)
context = {
'post': post,
}
return render(request, 'update.html', context)
# 게시글 수정
def post_update(request, id):
if request.method == "GET":
post = Feed.objects.get(id=id)
return render(request, 'update.html', {"post":post})
if request.method == "POST":
post = Feed.objects.get(id=id)
post.title = request.POST.get('title', '')
post.content = request.POST.get('content', '')
post.save()
return redirect('contents:post_detail', post.id)
models.py
from email import contentmanager
from django.db import models
from taggit.managers import TaggableManager
from taggit.models import TaggedItemBase
from django.conf import settings
from users.models import User
from django.db import models
class Feed(models.Model):
title = models.CharField(max_length=30)
content = models.TextField() # 글내용
image = models.ImageField(default="", upload_to="feed_images/") # 피드 이미지
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
category = models.CharField(max_length=30)
Urls.py
from django.urls import path
from . import views
app_name='contents'
urlpatterns = [
path("delete/<int:id>", views.post_delete ,name="post_delete"),# post_delete
path("post/", views.post,name="post"),# post_upload
path('detail/<int:id>', views.post_detail, name='post_detail'), # Post_update
path('update/<int:id>', views.post_update, name='post_update'),# Post_update
]
'TIL(Daily) > ETC' 카테고리의 다른 글
Fri/21/Oct/22 -머신러닝 프로젝트 5 (0) | 2022.10.22 |
---|---|
Thu/20/Oct/22- 장고 머신러닝 프로젝트-4 (0) | 2022.10.21 |
Wen/19/Oct/22 -장고/머신러닝 프로젝트-3 (0) | 2022.10.20 |
Mon/17/Oct/22-머신러닝 프로젝트 (0) | 2022.10.17 |
Fri/14/Oct/22- Github 사용방법 (복습 ) (0) | 2022.10.14 |
댓글