본문 바로가기
TIL(Daily)/ETC

Tue/18/Oct/22 머신러닝 프로젝트-2

by Hawie 2022. 10. 19.

오늘은 머신러닝 프로젝트 중 에서도 먼저 장고 기능을 먼저 구현 하였다.

 

나는 게시글 작성,삭제,수정 기능 을 만드는 부분을 맡았다.

처음에 는 잘 진행 되다가

삭제 부분에서 오류가 계속 나서 확인했더니.

오타 였다...

 

또 수많은 오류들이 발생 했다.

프로젝트 중이라 자세하게 리뷰 하기 힘들다.

 

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
    
    ]

 

 

 

 

 

댓글