- 글 작성이 완료 되면, 글 번호를 파라미터로 받을 것 입니다.
- 글 번호를 기준으로 내림차순 정렬
- 컬럼 명만 적어주면 됩니다.
@csrf_exempt
def board_write_result(request) :
content_subject = request.POST['board_subject']
content_text = request.POST['board_content']
content_date = timezone.localtime()
content_writer_idx = request.session['login_user_idx']
# 외래키(BoardInfoTable의 PK 컬럼을 참조한다)
content_board_idx = request.POST['board_info_idx']
content_model = board_app.models.ContentTable()
content_model.content_subject = content_subject
content_model.content_text = content_text
content_model.content_date = content_date
content_writer_model = user_app.models.UserTable.objects.get(user_idx=content_writer_idx)
content_board_model = board_app.models.BoardInfoTable.objects.get(board_info_idx = content_board_idx)
content_model.content_writer_idx = content_writer_model
content_model.content_board_idx = content_board_model
# 업로드된 파일 명을 가져옵니다.
content_model.content_file = request.FILES.get('board_file')
content_model.save()
content_model2 = board_app.models.ContentTable.objects.all().order_by('-content_idx')[0]
# print(content_model2.content_idx)
# 정렬한 데이터의 가장 최근 데이터로 정렬한다.
message = f'''
<script>
alert('저장되었습니다')
locaiton.href = '/board/board_read?board_info_idx={content_board_idx}&content_idx={content_model2.content_idx}'
</script>
'''
return HttpResponse(message)
- 글 읽는 페이지 구성
def board_read(request):
# 파라미터 데티어를 추출
board_info_idx = request.GET['board_info_idx']
content_idx = request.GET['content_idx']
# 현재 글 정보를 가져옵니다.
# 외래키 관계로 묶여 있으므로 select_related 함수를 사용합니다.
content_model = board_app.models.ContentTable.objects.select_related('content_writer_idx', 'content_board_idx').get(content_idx=content_idx)
template = loader.get_template('board_write.html')
render_data = {
'content_data' : content_model,
'board_info_idx' : board_info_idx,
'content_idx' : content_idx
}
return HttpResponse(template.render(render_data, request))
- 첨부 이미지
{% if content_data.content_file %}
<div class="form-group">
<label for="board_file">첨부 이미지</label>
<img src="{{content_data.content_file.url}}" width="100%"/>
</div>
{% endif %}
- board_app/urls.py 파일에 미디어 파일의 위치를 등록합니다.
from django.conf import settings
from django.contrib import admin
from django.urls import path
from django.urls import include
from django.urls import static
urlpatterns = [
path('admin/', admin.site.urls),
# 주소만 입력했을 경우(메인 페이지)
path('', include('main_app.urls')),
# 사용자 관련
path('user/', include('user_app.urls')),
# 게시판 관룐
path('board/', include('board_app.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)