Reputation: 33
Django forms not rendiring in the index page but when I created a new html file then it worked
forms.py
class UserRegisterForCourse(forms.ModelForm):
class Meta:
model = RegisterForCourse
fields = ['first_name', 'last_name', 'subject', 'phone']
view.py
def about_course(request):
if request.method == 'POST':
form = UserRegisterForCourse(request.POST)
if form.is_valid():
form.save()
subject = form.cleaned_data.get('subject')
messages.success(request, f'you have been successfully registered for {subject}')
return redirect('index')
else:
form = UserRegisterForCourse()
return render(request, 'goal/index.html', {'form':form})
in index.html
<form action="{% url 'about' %}" method="POST" role="form">
{% csrf_token %}
{{ form }}
</form>
any idea? It needs to work in index page what am I missing?
Upvotes: 1
Views: 75
Reputation: 912
please check below flow
forms.py
from django.contrib.auth.models import User
from django import forms
class UserForm(forms.ModelForm): #Classname
class Meta:
model = User
fields = ['first_name', 'last_name']
in views.py
from django.contrib.auth.models import User
from .forms import UserForm # Add form which is written in your forms.py
def index(request):
form = UserForm() #Initiate
return render(request, 'index.html', {'form': form})
index.html
<form action="{% url 'about' %}" method="POST" role="form">
{% csrf_token %}
{{ form }}
</form>
Upvotes: 1