iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0
Modern Web

Python x Django 網站實作&學習記錄系列 第 12

D12 使用者個人文件頁

首頁完成後 讓使用者可以進入使用者個人文件頁
列出屬於此使用者的文件
我已經先用測試網頁塞了測試資料給此使用者

doc_info/views.py 資料庫內篩選使用者id然後傳送給前端
使用修飾器來驗證是否有登入,如果沒有的話會導到登入頁面
網址會變成http://127.0.0.1:8000/accounts/login/?next=/doc/user/list/
next表示登入完之後會導到哪一頁、登入完成後會導回到此頁

from django.contrib.auth.decorators import login_required

@login_required
def doc_user_list(request):
    user = request.user
    Doc_warehouse = doc_warehouse.objects.filter(user_id=user.id)
    return render(request, 'doc/user_list.html', {'Doc_warehouse': Doc_warehouse})

doc_info/urls.py 增加轉址到使用者個人文件頁的路徑

urlpatterns = [
    path('doc/user/list/', views.doc_user_list, name='user_list'),
]

templates/user_list.html 增加使用者文件頁
首先將各個按鈕加入(首頁、使用者個人資料頁、登入登出頁、創建文件頁)
創建文件頁我先用一個空的html讓程式不會出現轉址錯誤
然後用表格+迴圈的方式列出使用者文件
刪除按鈕的部分也先用空的html替代

{% block content %}

<a href="{% url 'doc_info:main' %}">Main page</a> |
<a href="{% url 'auth_info:profile' %}">My Profile</a> | 
<a href="{% url 'account_logout' %}">Logout</a>

<p>Welcome {{ user.first_name }} {{ user.last_name }}</p>

<a href="{% url 'doc_info:create' %}">Create document</a>
<p></p>

<table border = "1">
    <thead>
        <tr>
            <th >Create date: </th>
            <th>Last modified date:</th>
            <th>Author</th>
            <th>Title</th>
            <th>Remark</th>
            <th>Link</th>
            <th>Delete</th>
        </tr>
    </thead>
    <tbody>
     {% for doc in Doc_warehouse %}
        <tr>
            <td>{{ doc.create_date }}</td>
            <td>{{ doc.last_mod_date }}</td>
            <td>{{ doc.user }}</td>
            <td>{{ doc.title }}</td>
            <td>{{ doc.remark }}</td>
            <td>{{ doc.link }}</td>
            <td><a href="{% url 'doc_info:delete' doc_id=doc.id %}" onclick="return confirm('Are you sure you want to delete this?')">Delete</a></td>
     {% endfor %}
        </tr>
    </tbody>
  </table>


{% endblock %}

簡略的使用者個人文件頁如下
Imgur


上一篇
D11 新增測試頁
下一篇
D13 刪除特定的使用者文件
系列文
Python x Django 網站實作&學習記錄30

尚未有邦友留言

立即登入留言