I.はじめに
管理管理バックエンドを介して記事を追加する場合、通常、[作成時間]と[最終更新時間]の2つのフィールドがあり、これら2つのフィールドの割り当てルールは次のとおりです。
- 最初の新しい記事のコンテンツが正常に追加された後:[作成時間]と[最終更新時間]の値は、新しい記事が正常に追加されたときのシステム時間に自動的に割り当てられます。このとき、[の値は作成時間]と[最終更新時間]は等しくなければなりません
- 記事の内容が正常に変更されるたびに:[作成時間]の値は新しい記事が正常に追加されたシステム時刻と同じままであり、[最終更新時間]の値は自動的に更新されてに割り当てられます記事のコンテンツが正常に変更されたシステム時間。この時点で、[作成時間]と[最終更新時間]の値は等しくてはなりません。
詳細:
①。実際、各データテーブルの設計段階では、[作成時間]と[最終更新時間]の2つのフィールドがデータの並べ替えと表示の条件として使用されることが多いため、これらのフィールドが必要です。
2つ目は、パラメーターauto_nowを入力し、パラメーターauto_now_addを入力します。
各モデルクラスには、DateTimeFieldとDateFieldおよびTimeFieldの3つのタイプがあります。これらの3つのタイプを使用して、それぞれ3つの異なる日付タイプのデータテーブルフィールドを作成できます。
これらの3つのタイプは同じパラメーターを持っています:auto_nowとauto_now_add;
詳細:
①。3つのカテゴリのいずれかで入力パラメータauto_nowまたはauto_now_addの値がTrueに設定されている場合、次のようになります。クラスの入力パラメータの編集可能な値がFalseになり、入力パラメータの値が空白になります。クラスの変更はTrueです。
②。入力パラメータの編集可能な値がFalseの場合、対応するテーブルフィールドは管理管理バックグラウンドのどのページにも表示されません。たとえば、新しく追加されたページや変更されたページには表示されません。 ;
③。入力パラメータブランクの値がTrueの場合、これは次のことを意味します。ユーザーが追加/編集ページの対応するテーブルフィールドの値を入力できないようにします。
④。入力パラメータauto_nowと入力パラメータauto_now_addの値を同時にTrueに設定することはできません。
1.auto_nowの関連する知識ポイントを入力します
入力パラメーターauto_nowのデフォルト値はFalseです。
入力パラメーターauto_nowの値がTrueに設定されている場合、それは次のことを意味します。新しいデータが正常に変更されると、入力パラメーターauto_nowに対応するテーブルフィールドの値は、変更が成功したシステム時刻に設定されます。
2.auto_now_addの関連する知識ポイントを入力します
入力パラメーターauto_now_addのデフォルト値はFalseです。
入力パラメータauto_now_addの値がTrueに設定されている場合、新しいデータが正常に作成されると、入力パラメータauto_now_addに対応するテーブルフィールドの値が、作成が成功したシステム時刻に設定されることを意味します。また、新しいデータが後で変更された場合、テーブルフィールドの値は更新されません。
三、完全な操作プロセス
3.1。最初のステップ:モデルクラスを作成する
# 新增一个Article类
class Article(models.Model):
'''文章'''
title = models.CharField(max_length=30) # 标题
body = models.TextField() # 正文(因为文章的正文字数会很多,所以需要使用该类TextField)
author = models.CharField(max_length=10) # 作者
create_time = models.DateTimeField(auto_now_add=True) # 创建时间
update_time = models.DateTimeField(auto_now=True) # 更新时间
3.2。ステップ2:データテーブルを作成する
[python manage.pymakemigrations]や[pythonmanage.pymigrate]などの移行関連のコマンドラインを使用して作成します。関連する操作については前のブログで説明しているため、ここでは詳しく説明しません。
3.3。ステップ3:[admin.py]で構成する
class ControllerArticle(admin.ModelAdmin):
list_display = ("title","author","body","create_time","update_time")
search_fields = ("title",)
admin.site.register(models.Article,ControllerArticle)
3.4。ステップ4:管理者管理のバックグラウンドに正常にログインする
3.5。ステップ5:記事を正常に追加する
3.6。ステップ6:記事を正常に更新する