Ich versuche, meinen Django Dateiuploadknopf zu stylen, aber da es durch das Formular gehandhabt wird und nicht ausdrücklich im HTML innerhalb der Schablone geschrieben wird, kann ich es nicht direkt mit HTML und CSS wie ich für andere Knöpfe vom Typ eingeben .Wie können Sie Djangos Dateiauswahl-Formular-Schaltfläche formatieren?
Ich habe versucht, meine CSS-Klasse innerhalb meiner forms.py
hinzuzufügen, aber es ist die Vanille Standard-Django-Datei-Upload-Schaltfläche über meine Schaltfläche CSS-Stil gesetzt.
Mein Code ist wie folgt:
class FileUploadForm(forms.Form):
docFile = forms.FileField(
label = "Select a CSV file",
)
class Meta:
model = FileUpload
fields = ('docFile')
def __init__(self, *args, **kwargs):
super(FileUploadForm, self).__init__(*args, **kwargs)
self.fields['docFile'].widget.attrs.update({'class': 'my_class'})
Ich versuchte auch, wie so ein widget
in meiner Meta
Klasse definieren:
class Meta:
model = FileUpload
widgets = {
'docFile': forms.FileInput(attrs={'class': 'my_class'}),
}
aber das hatte die gleiche Wirkung wie mein erster Versuch.
Gibt es eine andere Möglichkeit, dies zu erreichen, oder gibt es einige logische Fehler, die Sie in meinem Code finden können?
nur spezifisch zu sein ... ist das Problem, dass Sie in der gerenderten HTML (Django Problem) hinzugefügt nicht diese Klasse sehen? Oder können Sie das CSS-Set standardmäßig nicht überschreiben (CSS-Problem)? – dylrei
Ich kann meine benutzerdefinierten CSS sehen, aber das Problem ist, dass der Standard-'File Upload' Button, der die Dateiauswahl auslöst, dann über meine CSS-Stile gesetzt wird. Es scheint also, dass es sowohl auf der CSS- als auch auf der Django-Seite ein Problem sein könnte. –
Also ... sehen Sie sich die HTML-Quelle eines gerenderten Formulars an und Ihre Schaltfläche hat eine Klasse von my_class? Dann ist es ein CSS-Problem. Zu den möglichen Lösungen gehören das spätere Laden des CSS und/oder das Hinzufügen der Option! Wichtig oder ein kurzer JS-Aufruf am unteren Rand der Vorlage, um einen anderen Stil auf der Schaltfläche zu erzwingen. – dylrei