4

choices= オプションを使用したいモデルがありますが、深さは 3 レベルです。

class Doctor(models.Model):
...
zipcode = models.CharField(max_length=10, choices=AREAS, null=True, blank=True)

管理者の「郵便番号」ドロップダウン内で、階層を次のようにしたいと思います。

Bronx
--Kingsbridge
----10463
----10471
--Fordham
----10458 
----10467
----10468 
Brooklyn
--Borough Park
----11204
etc.

次に、郵便番号 10463 を選択すると、ドクター オブジェクトはブロンクスのキングスブリッジ エリアに関連付けられます。私はこれをさまざまな方法で試しています。私が最も近いのはこれを使用することです:

AREAS = (
    ('Bronx', (('Kingsbridge', ('10463', '10463'),),)),
    ...
)

残念ながら、それは私にこの階層を与えます:

Bronx
--('10463', '10463')

これは奇妙で役に立ちません。誰かが私が間違っているところを見ることができますか? この階層は可能ですか?Areas というアプリで別のテーブルを作成し、manytomany フィールドを使用する方が賢明でしょうか? 考えれば考えるほど、manytomany フィールドを使用する必要があると思います。前もって感謝します

4

1 に答える 1

1

https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.Field.choicesによると、2 レベルの階層のみがサポートされているようです。2 つ以上のレベルが必要な場合は、カスタム ウィジェット (または) 外部キー関係を持つ複数のフィールドを使用する必要があります。

于 2013-10-28T03:42:22.247 に答える