これは非常にシンプルですが、驚くべきことにSOやDjangoのドキュメントにはまだ何の手がかりも見つけられませんでした。Django:ManyToManyFieldがFieldオブジェクトから空になっていないか確認してください
特定のManyToManyFieldが空であるかどうかを確認したいが、まだそれをやり遂げる方法を見つけることはできない。それは場合に役立ちます。ここに私の正確なユースケースは、です:
for field in school._meta.get_fields(): # school is the Model object
if (field.get_internal_type() == 'ManyToManyField'):
#if (find somehow if this m2m field is empty)
#do something if empty
else:
if (field.value_to_string(self) and field.value_to_string(self)!='None'):
#do something when other fields are blank or null
は似ていますが、モデルオブジェクトで空になっているすべてのManyToManyFieldsをフィルタリングについてですthisポストを見つけ、そのような場合には役立ちません。
all()
またはcount()
またはempty()
またはexists()
はManyToManyFieldsでは機能しないようです。 (そのマネージャを参照するため)
if (field):
戻りTrue
がField referenceまたはManyToManyField reference