1. 程式人生 > 實用技巧 >django自定義過濾器

django自定義過濾器

django 自定義過濾器

  • 建立模型

    from django.db import models
    
    class User(models.Model):
        # 使用者名稱
        username = models.CharField(max_length=32,unique=True)
        # 密碼
        password = models.CharField(max_length=255)
        # 新增時間
        addtime = models.DateTimeField(auto_now_add=True)
    
    
        class Meta:
            # 指定表名
            db_table = 'user'
    
    
  • 建立檢視函式

    from django.shortcuts import render
    from django.views import View
    from . import models
    
    class UserView(View):
        def get(self,request):
            user = models.User.objects.all()
            return render(request,'index.html',{"user":user})
    
  • 路由檔案

    from django.urls import path
    from . import views
    urlpatterns = [
        path('user/',views.UserView.as_view())
    ]
    
  • 建立模版檔案

    {% load mytags %}
    <body>
        <table>
            <tr>
                <td>id</td>
                <td>name</td>
                <td>password</td>
                <td>addtime</td>
            </tr>
            {% for i in user %}
            <tr>
                <td>{{ i.id }}</td>
                <td>{{ i.username }}</td>
                <td>{{ i.password }}</td>
                <td>{{ i.addtime | myTime }}</td>
            </tr>
            {% endfor %}
        </table>
    </body>
    
  • 建立templatetags目錄 並 建立自定義過濾器檔案mytags.py

    from django import template
    register = template.Library()
    @register.filter
    def myTime(val):
        return val.strftime('%Y-%m-%d %H:%M:%S')