ConfirmationField
フィールドタイプが欲しいです。このフィールドをブールフィールドのように機能させたい。この情報をデータベースに保存する必要はありません。代わりに、確認の日付を別のフィールドに保存したいと思います。
class MyModel(models.Model):
confirmation = ConfirmationField()
m = MyModel()
m.confirmation # False
m.confirmation_timestamp # None
m.confirmation = True
m.save()
m.confirmation_timestamp # datetime object
m.confirmation = False
m.save()
m.confirmation_timestamp # None again
両方のフィールドをField
インスタンスとして持つ必要があります。たとえば、それらを Admin で使用できるようにする必要があります。
ドキュメントを読んでコードを確認し、ForeignKey
データベースの列名を次のコードで変更しました。
def get_attname(self):
return '%s_id' % self.name
しかし、例として残りのコードをどのように使用できるかを正確に理解できませんでした。私の目標はそれほど複雑ではないようです。
ImageField
モデルを保存すると、保存された追加情報も見つかりました。
if self.field.width_field:
setattr(self.instance, self.field.width_field, self.width)
if self.field.height_field:
setattr(self.instance, self.field.height_field, self.height)
もちろん、confirmation
それ自体をデータベースに保存したくありません。confirmation_timestamp
( -> confirmation
) None
==False
および<datetime instance>
==であるため、冗長性が生じますTrue
。
任意のポインタ/アイデアをいただければ幸いです。
ありがとう。
編集:これは現在不可能のようです。APIを変更することになりました。これは、私がどのようにそれを行ったかを示すためのスニペットです。
value = {'BooleanField': True,
'DateTimeField': datetime.datetime.now(),
'DateField': datetime.date.today(),
'IntegerField': 1,
}[instance._meta.get_field(field_name).get_internal_type()]
setattr(instance, field_name, value)
上記の任意のタイプの確認フィールドを持つことができ、正しい値が設定されます。そして、確認チェックは で行うことができますbool(getattr(instance, field_name)
。