[Python] Django ModelChoiceField - usa qualcosa di diverso dall'ID?


Answers

Se postal_code è una chiave esterna di un modello PostalCode che contiene codici postali validi, utilizzerei solo un CharField e quindi eseguo una pulizia come suggerito. Il mio metodo pulito sarebbe simile a questo:

def clean_postal_code(self):
    try:
        code = PostalCode.objects.get(code_field=self.data['postal_code'])
    except:
        raise forms.ValidationError("Please enter a valid postal code")
    return code
Question

Supponiamo che abbia una tabella degli address e che disponga di un campo postal_code : ModelChoiceField non mi consente di utilizzare qualcosa di diverso dai PK per convalidare l'esistenza corretta? Quale sarebbe la strada da percorrere? Ingresso normale e uso clean_*() ?