Как сделать форму в _base.html - PullRequest
0 голосов
/ 28 мая 2018

Мне нужно сделать форму в шапке сайта.Эта форма будет доступна для всех страниц моего сайта.Например, у меня в приложении есть «учетные записи»:

forms.py

class SignupForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput)

    class Meta:
        model = User
        fields = ('phone',)

views.py

def signup(request):
    form = SignupForm(request.POST or None)
    # CODE #
    ctx = {
        'form': form,
    }
    return render(request, 'accounts/signup.html', ctx)

urls.py

from django.urls import path
from . import views

app_name = 'accounts'

urlpatterns = [
    path('signup/', views.signup, name='signup'),
]

account / signup.html

 {% block signup %}
     {{ form }}
 {% endblock %}

Если я добавлю {% include 'accounts/signup.html' %} к моему_base.html, я не получаю форму - {{form}}, но все остальное содержимое будет включено.

И можете ли вы сказать мне, как именно получить форму для всех страниц сайта?Это правильный подход?

1 Ответ

0 голосов
/ 28 мая 2018

Используйте пользовательский тег шаблона , чтобы инициализировать пустую форму и отображать ее из любого места - просто убедитесь, что атрибут action тега HTML <form> указывает на представление регистрации.

...