django ormモジュール中のis_delete用法


データベース削除のデータは私達はすべて知っています。簡単に言えば、企業に役に立たない時、一般人はこのデータを削除することを選ぶかもしれません。
でも削除したら、後でまた急に役に立ちますね。ですから、私たちはormモジュールを書く時にis_を入れます。deleteフィールド
is_delete=models.Boolean Field(default=False,verbose_name='は削除するかどうか')
これからはデータを削除したいなら、設定してください。
is_delete=1
このデータが論理的に削除されたということです。簡単に言えば、いくらデータベースを探しても見つけられないです。後でまた使うなら、また設定します。
is_delete=0
いいです
知識を補充します:djangoの中でmodelがordengを設置した後に、distinct()とannotate()の問題の記録を使います。
モデルクラスは次の通りです。私はclass Metaにordeng='-date_を設置しました。create''とは、モデルオブジェクトが返した記録結果セットをこのフィールドで並べ替えます。

class SystemUserPushHistory(models.Model):
 
  id = models.UUIDField(default=uuid.uuid4, primary_key=True)
  host_name = models.CharField(max_length=128, null=False)
  system_username = models.CharField(max_length=128, null=False)
  method = models.CharField(max_length=32, null=False)
  is_success = models.BooleanField(default=False)
  date_create = models.DateTimeField(auto_now_add=True, editable=False)
  message = models.CharField(max_length=4096, null=True)
 
  class Meta:
    db_table = "assets_systemuser_push_history"
    ordering = ['-date_create']
 
  def __str__(self):
    ret = self.system_username + " => " + self.host_name
    return ret
業務に需要があるときは、例えばhost_nameはグループ表示を行い、コードにannotateを使用しました。以下の通りです。

>>> from django.db.models import Count 
>>> from assets.models import SystemUserPushHistory
>>> p = SystemUserPushHistory.objects.values("host_name").annotate(dcount=Count(1))
>>> p
<QuerySet [{'host_name': ' 2', 'dcount': 1}, {'host_name': ' 3', 'dcount': 2}, {'host_name': ' 2', 'dcount': 1}, {'host_name': ' 3', 'dcount': 1}]>
>>> print(p.query)
SELECT `assets_systemuser_push_history`.`host_name`, COUNT(1) AS `dcount` FROM `assets_systemuser_push_history` GROUP BY `assets_systemuser_push_history`.`host_name`, `assets_systemuser_push_history`.`date_create` ORDER BY `assets_systemuser_push_history`.`date_create` DESC
得られた結果は私達が予想したようには見えません。その後実行したsqlを出力してグループトップbyにいる時はホストに対して見られます。nameとdate_createでグループ化するのは、modelクラスにordeingを設置しています。削除したらコードが正常に運行されます。
distinctを使うのは上の状況と似ていますので、載せません。
以上のdjango ormモジュールの中のis_deleteの使い方は小编が皆さんに提供した内容を全部共有しました。参考にしていただければと思います。どうぞよろしくお愿いします。