Как не вписывать форму в каждый шаблон html и унаследовать ее с помощью extends? Django

Как мне сделать так чтоб на каждой странице была эта форма, но при этом не вписывать в каждый view одно и то же? Чтобы сделать эту форму на 4 шаблона я вставил в каждый view одинаковый код. Как этого можно избежать?

Forms.py

class FeedbackForm(ModelForm):
    class Meta:
        model = Feedback
        fields = ['feedback_name', 'feedback_email', 'feedback_text']

        widgets = {
            "feedback_name": TextInput(attrs={'class': 'form-control', 'placeholder':'Имя'}),
            "feedback_email": TextInput(attrs={'class': 'form-control', 'placeholder': 'Ваша почта'}),
            "feedback_text": Textarea(attrs={'class': 'form-control', 'placeholder':'Сообщение'}),
        }

html

<form method="post">
   {% csrf_token %}
   {{ form.feedback_name }}<br>
   {{ form.feedback_email }}<br>
   {{ form.feedback_text }}<br>
   <button class="btn btn-success" type="submit">Отправить</button>
</form>

views.py

def creators(request):
    games = Games.objects.all()
    if request.method == 'POST':
        form = FeedbackForm(request.POST)
        if form.is_valid():
            form.save()

    form = FeedbackForm()

    data = {
        "games": games,
        "form": form,
    }
    return render(request, 'creators.html',data)

Попробуй вынести логику функции creators в отдельную функцию(типа get_feedback_form). Далее импортируй эту функцию в свои 4 views, а затем используй, вызывая get_feedback_form с аргументами. Дальше тебе остается только отрендерить шаблон

Вернуться на верх