class Board(models.Model):
title = models.CharField(max_length=128, verbose_name='제목')
contents = models.TextField(verbose_name='내용')
# Fcuser모델과 연동
writer = models.ForeignKey('fcuser.Fcuser', on_delete=models.CASCADE ,verbose_name='작성자')
# auto_now_add = 자동으로 현재시간을 저장
regisrered_dttm = models.DateTimeField(auto_now_add=True, verbose_name='등록시간')
def __str__(self):
return self.title #문자열로 title반환
class Meta:
db_table = 'fastcampus_board' # 테이블명을 지정
verbose_name = '패스트캠퍼스 게시글'
verbose_name_plural = '패스트캠퍼스 게시글'
def board_list(request):
# 역순으로 게시글 가져옴
boards = Board.objects.all().order_by('-id')
return render(request, 'board_list.html', {'boards': boards})
order_by('-id')
는 역순(제일 마지막에 생성된 애가 제일먼저 렌더링)으로 정렬한다. 기억해두자.
from django.contrib import admin
from .models import Board
# Register your models here.
class BoardAdmin(admin.ModelAdmin):
list_display = ('title',)
admin.site.register(Board, BoardAdmin)
admin에 모델 추가하는법은 잘 익숙하지 않으니 기억해두자.
{% extends "base.html" %} {% block contents %}
<div class="row mt-5">
<div class="col-12">
<table class="table">
<thead>
<tr>
<th>#</th>
<th>제목</th>
<th>아이디</th>
<th>작성일시</th>
</tr>
</thead>
<tbody>
{% for board in boards %}
<tr>
<th>{{ board.id }}</th>
<td>{{ board.title }}</td>
<td>{{ board.writer }}</td>
<td>{{ board.regisrered_dttm }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
<div class="row">
<div class="col-12">
<button class="btn btn-primary">글쓰기</button>
</div>
</div>
{% endblock %}
for문을 사용해서 board에 Board모델값들을 가져와서 사용한다.