は、私は、例外がいくつかのフィールドがPerson
で必要とされていることであることで、&種類を正確に同じフィールド名を持つ2つのジャンゴモデル、モデルPerson
とモデルPersonTemplate
を持っていますPersonTemplate
。モデルをこれらのクラスの両方に貼り付けるだけでも簡単ですが、ハードコーディングが多く、1つのモデルを編集して他のモデルを忘れてしまった場合、データが破損する可能性があります。のPythonプログラムで定義する変数、彼らはしていないのに対し、
私が念頭に置いておくべき解決策は、フィールドが必要かどうかにかかわらず、論理型引数をとる関数でdjangoモデルフィールドを定義することです。私は方法がわからない何
def get_fields(is_required=True):
first_name = models.CharField(max_length=128, verbose_name=_("First Name"),
blank=is_required, null=is_required)
last_name = models.CharField(max_length=128, verbose_name=_("Last Name"),
blank=is_required, null=is_required)
return locals()
class Person(models.Model):
vars = get_fields(True)
class PersonTemplate(models.Model):
vars = get_fields(False)
のようなものは、モデルのクラス本体にget_fields
からローカル変数を取得することです。誰も、これらのモデルを実装するための良いアイデアや提案がありますか?
これはOPが最初に求めていたものですが、is_requiredのフィールド定義属性を動的に変更しながら繰り返しを避ける方法を尋ねています。 – Pythonista
ああ、私の悪い、私は適切に質問を読んでいない、私の答えを更新します。 – v1k45
@Pythonista私は答えを更新しました – v1k45