Q&A

책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.

별도로 마이페이지 앱을 생성했습니다.

2 years, 4 months ago

taxspoon taxspoon

우선 책을 따라하다 막히는 부분이 아니어서 여쭙기 죄송하다는 말씀부터 드립니다.


마이페이지의 목적은 나중에 게시물이 많아졌을 때 이용자가 자신이 댓글을 남긴 포스트를 찾지 못할 것 같아

본인이 댓글을 남긴 포스트만 별도로 불러올 수 있도록 만들려는 페이지인데요, 

구현 가능한지 여부와 현재 상태에서 해야 할 방향을 알려주신다면 열심히 연구해보겠습니다.

아래 코드는 blog앱에서 발췌하여 구색만 갖춰봤는데 표시되는 내용이 없네요 ^^


현재 my_page 앱을 생성하고, templates/my_page/index.html을 새로 만들어서

navbar에 링크를 생성하고,  프로젝트 폴더 settings.py에 my_page를 추가하고,

프로젝트 폴더 urls.py에 도 패스 추가하여 index.html이 열리는 것 자체에는 오류는 없습니다만,

blog앱 폴더처럼 포스팅 내용을 불러오려 하니 아무것도 표시되지 않습니다.


my_page/urls.py

from django.urls import path
from . import views

urlpatterns = [
path('', views.index),
path('', views.PostList.as_view()),
]

my_page/views.py

from django.shortcuts import render
from django.views.generic import ListView
from .models import Post


def index(request):
posts = Post.objects.all()
return render(
request,
'my_page/index.html',
{
'posts': posts,
}
)


class PostList(ListView):
model = Post
ordering = '-pk'
paginate_by = 3

my_page/models.py

from django.db import models


class Post(models.Model):
title = models.CharField(max_length=50)
hook_text = models.CharField(max_length=100, blank=True)

head_image = models.ImageField(upload_to='blog/images/%Y/%m/%d/', blank=True)
file_upload = models.FileField(upload_to='blog/files/%Y/%m/%d/', blank=True)

created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)

def __str__(self):
return f'[{self.pk}] {self.title} :: {self.author}'

my_page/templates/my_page/index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% for P in posts %}
<h2>{{p.title}}</h2>
<h4>{{p.created_at}}</h4>
<p>{{p.content}}</p>
{% endfor %}

</body>
</html>

taxspoon
taxspoon   2 years, 4 months ago

my_page/views.py

from .models import Post

를 

from blog.models import Post

와 같이 고쳐서 해결했습니다.

. 이 해당폴더를 의미하는 것이어서 그런 것이었네요.


single_page에서 recent post 불러올때도 blog폴더의 모델을 불러왔었네요!

이제 쿼리 명령어를 연구해보면 될까요?

Updated: Nov. 10, 2022, 11:31 a.m.

sungyong
sungyong   2 years, 4 months ago

안녕하세요. 

.models는 큰 상관이 없을 것 같고요. 

{% for P in posts %}

로 for문을 사용했는데, 그 안에서는 P가 아니라 p로 되어 있습니다. 

대문자 P를 소문자 p로 바꿔보세요. 

Updated: Nov. 10, 2022, 8:54 p.m.

taxspoon
taxspoon   2 years, 4 months ago

아하 그렇군요 코드를 다시 입력해보는 과정에서 대문자 P도 소문자 p로 어느 샌가 바뀌어있네요.

그래서 해결된건가 봅니다. 원인을 정확히 짚어주셔서 감사합니다.

Updated: Nov. 11, 2022, 9:12 a.m.

Leave a Comment:
목록보기
Search
  • 자유게시판
  • Q&A