私は時々フィールドに何も持っていないモデルの人物を持っていbirth_date
ます。次に例を示します。
(Pdb) dude = Person.objects.get(pk=20)
(Pdb) dude
<Person: Bob Mandene>
(Pdb) dude.birth_date
(Pdb) dude.birth_date == None
True
を持つこれらのレコードをフィルタリングするにはどうすればよいbirth_date == None
ですか?
私はすでに次のことを試しましたが、成功しませんでした:
1: 「birth_date__isnull」は機能しません。
Person.objects.filter(birth_date__isnull = True)
# does not return the required
# object. Returns a record that have birth_date set to
# NULL when the table was observed in MySQL.
以下は、ID 20 のレコードを返しません。
Person.objects.filter(birth_date = "")
None であるフィールドをフィルタリングするにはどうすればよいですか? NULL と None は違うようです。Sequel pro (mysql グラフィカル クライアント) を使用してデータを表示すると、「0000-00-00 00:00:00」と表示され、次のいずれかが機能しませんでした
(Pdb) ab=Patient.objects.filter(birth_date = "0000-00-00 00:00:00")
ValidationError: [u"'0000-00-00 00:00:00' value has the correct format
(YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) but it is an invalid date/time."]
モデル
class Person(models.Model):
person_no = models.IntegerField(primary_key=True)
locationid = models.IntegerField(null=True, db_column='LocationID', blank=True)
address = models.ForeignKey('Address', db_column = 'address_no')
birth_date = models.DateTimeField(null=True, blank=True)
class Meta:
managed = False
db_table = 'person'