Chcę pozbyć się „-------------” Choice Django dodaje w wybranej wejścia reprezentującej klucz obcy na ModelFormModelChoiceField, usuwając puste wybór
Nadszedł been answered, można użyć opcji empty_label=none
, ale mam ModelForm, a nie zwykłą formę i nadpisanie pola jest niedozwolone.
wiem, że mogę zastąpić metodę z ModelForm __init__()
w celu zmodyfikowania queryset danej ModelChoiceField Korzystanie
self.fields['my_foreign_key'].queryset = ....
Ale to byłoby naprawdę brzydki, jak to się dzieje ponad +10 foreign_keys na „głównej” model i nie więcej niż ModelForm oparte na tym modelu
cały kontekst:
- każdy z tych punktów foreign_key do tego samego rodzaje modeli: są to konkretne listy wyborów, wiele modeli ułatwia ich modyfikację za pośrednictwem administratora.
- wszystkie te modele są powiązane z Modelem głównym za pomocą relacji "to_field = code", na podstawie Charfielda, który zawiera trzyliterowy kod (hej, nie moja wina, musiałem użyć starszego MS Access DB), to Charfield ma opcje
blank=True, unique=True
, więc mogłem, dla każdej listy, utworzyć"---No information yet---"
rekord, który ma, to zakład, pustą wartość zamiast trzyliterowy kod ...
sytuacja jest teraz: mam wybrane pole wejściowe z dwoma opcjami "pustej wartości": django i moje, jedna po drugiej. prostu przegapić „empty_label = opcję none` tutaj też ...
myślę, że można przedefiniować/nadpisać pole. Robię to, aby zmienić pole modelu DateTime na formularz TimeField (i dodać dodatkowe pole DateField). Następnie przesłonię metodę clean() formularza, aby połączyć pola daty i godziny. –