W admin django istnieją pola, które chciałbym wymagać, jeśli model jest edytowany jako samodzielny. Jeśli jest wbudowany, nie chcę, aby były wymagane. Czy jest jakiś sposób na zrobienie tego?W administratorze Django, czy mogę wymagać pól w modelu, ale nie wtedy, gdy jest on wbudowany?
Odpowiedz
Podczas gdy odpowiedź Daniela Rosemana działa, nie jest to najlepsze rozwiązanie. Wymaga to trochę duplikacji kodu, ponieważ musi ponownie zadeklarować pole formularza. Na przykład, jeśli masz na tym polu verbose_name
, musisz również dodać label='My verbose_name already set on model'
do linii CharField
, ponieważ ponowne deklarowanie całego pola spowoduje zasadniczo usunięcie wszystkich elementów ustawionych w modelu dla tego pola.
Lepszym rozwiązaniem jest zastąpienie metody formularza __init__
i jawne ustawienie field.required
na True
lub False
tam.
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
self.fields['myfield'].required = True
Pewnie. Po prostu zdefiniuj niestandardowy formularz, z wymaganym polem nadpisanym, aby ustawić required = True, i użyj go w swojej klasie administratora.
class MyForm(forms.ModelForm):
required_field = forms.CharField(required=True)
class Meta:
model = MyModel
class MyAdmin(admin.ModelAdmin):
form = MyForm
class MyInlineAdmin(admin.ModelAdmin):
model = MyModel
W tym miejscu MyAdmin używa formularza nadpisanego, ale MyInlineAdmin nie jest.
- 1. Jak wymagać wstawiania w Administratorze Django?
- 2. Jak używać niestandardowych pól formularza dla pól modelu w administratorze Django?
- 3. Jak wyświetlić dodawanie modelu w formacie tabelarycznym w administratorze Django?
- 4. Unwrap opcjonalnego tylko wtedy, gdy jest on obecny
- 5. Sprawdzanie poprawności pól modelu Django
- 6. Czy mogę mieć formularz Django bez modelu
- 7. Przesyłanie wielu obrazów w administratorze Django
- 8. Administrator Django: czy mogę zdefiniować kolejność pól?
- 9. Jak wyświetlić model wbudowany administratora Django w zestawie pól?
- 10. Indeksowanie indeksów pól modelu Django
- 11. Nazwa nie jest zdefiniowane w modelu Django
- 12. Dziedziczenie modelu Django. Ukrywanie lub usuwanie pól
- 13. Jak zaktualizować wiele pól instancji modelu django?
- 14. Django, sleep() wstrzymuje wszystkie procesy, ale tylko wtedy, gdy nie ma parametru GET?
- 15. Dlaczego mogę zadzwonić GetType() na pustą tablicę, ale nie wtedy, gdy jego powrocie z funkcji
- 16. Jak mogę przekonwertować UITextView tylko wtedy, gdy jest on pełen tekstu?
- 17. UnicodeEncodeError podczas przesyłania plików w administratorze Django
- 18. Czy mogę wymagać ustawienia atrybutu w kolekcji mongodb? (nie puste)
- 19. Jak przenieść model do innej sekcji w administratorze strony Django?
- 20. Edycja modelu obiektowego z widokiem aktualizacja Django za wyjątkiem pól
- 21. Jak mogę zaktualizować tylko niektóre pola w formularzu modelu Django?
- 22. Obiekt nie zdefiniowane podczas pracy w pętli, ale nie wtedy, gdy wykonywane sekwencyjnie
- 23. Pole modelu w Django
- 24. Django: jak filtrować sumę dwóch pól w pokrewnym modelu?
- 25. DISTINCT ON w Django
- 26. Administrator Django wbudowany w głęboką relację
- 27. Sygnał Django po zapisaniu całego modelu
- 28. Filtrowanie według niestandardowego zakresu dat w administratorze Django
- 29. Czy program DbgHelp.dll jest wbudowany w system Windows? Czy mogę na nim polegać?
- 30. Admin Django -> Zmiana kolejności pól, w tym pól śródliniowych
Dziękuję bardzo – Mitch