Q&A
책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.
이 페이지는 의견 교환을 위해 따로 만든 페이지입니다. 책에서 이 페이지를 만드는 법을 직접적으로 다루지는 않습니다.
하지만, 책을 끝까지 읽고 나면 이 페이지도 만드실 수 있을거에요.
하지만, 책을 끝까지 읽고 나면 이 페이지도 만드실 수 있을거에요.
별도로 마이페이지 앱을 생성했습니다.
2 years, 4 months ago
우선 책을 따라하다 막히는 부분이 아니어서 여쭙기 죄송하다는 말씀부터 드립니다.
마이페이지의 목적은 나중에 게시물이 많아졌을 때 이용자가 자신이 댓글을 남긴 포스트를 찾지 못할 것 같아
본인이 댓글을 남긴 포스트만 별도로 불러올 수 있도록 만들려는 페이지인데요,
구현 가능한지 여부와 현재 상태에서 해야 할 방향을 알려주신다면 열심히 연구해보겠습니다.
아래 코드는 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 2 years, 4 months ago
my_page/views.py
를
와 같이 고쳐서 해결했습니다.
. 이 해당폴더를 의미하는 것이어서 그런 것이었네요.
single_page에서 recent post 불러올때도 blog폴더의 모델을 불러왔었네요!
이제 쿼리 명령어를 연구해보면 될까요?
Updated: Nov. 10, 2022, 11:31 a.m.
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 2 years, 4 months ago
아하 그렇군요 코드를 다시 입력해보는 과정에서 대문자 P도 소문자 p로 어느 샌가 바뀌어있네요.
그래서 해결된건가 봅니다. 원인을 정확히 짚어주셔서 감사합니다.
Updated: Nov. 11, 2022, 9:12 a.m.
Leave a Comment: