django_filters mit Bootstrap stylen?

Django, Flask, Bottle, WSGI, CGI…
Antworten
gospat83
User
Beiträge: 36
Registriert: Dienstag 21. September 2021, 14:25

Moin zusammen,

ich habe Bootstrap in meinem Projekt per CDN eingebunden. Für eine Form habe ich es schon verwendet und dort funktioniert es auch. Ich habe dem entsprechenden <div> die Class "form-group" mitgegeben. Das alleine funktionierte noch nicht, ich musste meiner Form zusätzlich in der forms.py noch Angaben zu widgets mitgeben:

Code: Alles auswählen

class ResponsibilityForm(forms.ModelForm):
    class Meta:
        model = Responsibility
        fields = ['project', 'system', 'department', 'employee']
        labels = {
            'project': 'Projekt',
            'system': 'Baugruppe',
            'department': 'Abteilung',
            'employee': 'Mitarbeiter',
        }
        widgets = {
            'project': forms.Select(attrs={'class': 'form-control'}),
            'system': forms.Select(attrs={'class': 'form-control'}),
            'department': forms.Select(attrs={'class': 'form-control'}),
            'employee': forms.Select(attrs={'class': 'form-control'}),
        }
Danach funktionierte es und es sieht auch aus wie gewünscht. Bei meinem Filter habe ich ebenfalls die Class "form-group" gesetzt, aber das Design verändert sich nicht zum "Bootstrap Design".

filters.py:

Code: Alles auswählen

import django_filters
from .models import *

class ResponsibilityFilter(django_filters.FilterSet):
    class Meta:
        model = Responsibility
        fields = ['project', 'system', 'department', 'employee']
responsibilities.html Auszug:

Code: Alles auswählen

<div class="form-group">
    <form method="GET">
        {{ resp_filter.form.as_p }}
        <button class="btn btn-warning" type="submit">Filtern</button>
        <button class="btn btn-danger"><a href="{% url 'responsibilities' %}" class="button-link">Filter löschen</a></button>
    </form>
</div>
views.py Auszug:

Code: Alles auswählen

from django.shortcuts import render, redirect
from .models import Responsibility
from .forms import ResponsibilityForm
from .filters import ResponsibilityFilter


def responsibilities(request):
    responsibilities_obj = Responsibility.objects.all()
    resp_filter = ResponsibilityFilter(request.GET, queryset=responsibilities_obj)
    responsibilities_obj = resp_filter.qs
    context = {'responsibilities': responsibilities_obj, 'resp_filter': resp_filter}
    return render(request, 'system_cockpit/responsibilities.html', context)
Hat jemand eine Idee woran ich scheitere? Muss ich auch noch widgets hinzufügen? Wenn ja, wie müssen diese aussehen?

Kann man eigentlich irgendwie Bilder einfügen ohne die irgendwo extern hochzuladen?

Viele Grüße
gospat
gospat83
User
Beiträge: 36
Registriert: Dienstag 21. September 2021, 14:25

Ich habe es jetzt selbst hinbekommen. Ich habe mir django-widget-tweaks installiert und mein template entsprechend angepasst. Jetzt habe ich meine gewünschte Optik.
Antworten