掲示板verを作成します.2(リスト)


掲示板-1の作成



モデルの作成

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 = '패스트캠퍼스 게시글'

views

def board_list(request):
    # 역순으로 게시글 가져옴 
    boards = Board.objects.all().order_by('-id')
    
    return render(request, 'board_list.html', {'boards': boards})
    
order_by('-id')は逆の順序で並べられています(最後に生成された子供が最初にレンダリングされます).覚えておきましょう.

admin

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にモデルを追加する方法はよく知られていないので、覚えておいてください.

templates

{% 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でボードモデル値を取得します.