ModelChoiceFields dienen dazu, zwischen einer Auswahl von vorhandenen Modellinstanzen auszuwählen. Dies wird fast immer am besten durch eine Art von Select-Feld dargestellt.
Das heißt, haben Sie wirklich einen FK von Adresse zu postal_code, wie Sie implizieren. Was speichern Sie in einer PostalCode-Tabelle, um die zusätzliche Tabelle zu rechtfertigen, die für jede adressbezogene Abfrage verknüpft werden muss?
In den meisten Fällen sollte postal_code einfach ein CharField sein. Wenn Sie in diesem Fall überprüfen möchten, ob der Wert gültig ist, können Sie das Attribut choices
mit einer Liste gültiger Postleitzahlen verwenden. Beachten Sie, dass die Pflege einer Liste mit gültigen Postleitzahlen von Hand sehr mühsam ist.
Wenn Sie wirklich eine PostalCode-Tabelle haben und denken, dass es eine gute Idee ist (was in einigen Fällen auch der Fall sein könnte), sollten Sie den postal_code als Primärschlüssel und nicht als Standard-Autoinkrement verwenden Daten exportierbarer, und löst Ihr Problem mit der Validierung.
Tags und Links python django django-forms validation django-validation