Moh Raad
Moh Raad

Reputation: 25

Django - ModelForm to template not submitting data

my django template is not submitting data! i know it is very basic thing but there is something i cannot realize here! my Model is:

class project(models.Model):
    Project_Name = models.CharField(max_length=50)

And my ModelForm is:

class create_project(forms.ModelForm):     
  class Meta:
     model = project
     fields = ['Project_Name']

views.py

def project_create_view(request):
    form = create_project(request.POST or None)
    msg  = ''
    if form.is_valid():
        form.save()
        msg = 'Data Submitted'
        form = create_project()
    return render(request, 'create_project.html', {'form':form, 'msg':msg})

And my template is:

<form action="" method="POST">
    {% csrf_token %}
<table border="1">
        <tr>
            <td>
                <div>
                    <label for="id_Project_Name">Project Name</label>
                    <input type="text" name="Project_Name" id="id_Project_Name">
                </div>
            </td>
        </tr>
</table>
<input type="submit"  value="Submit">
</form>

My context dict is 'form', i tried so many ways searched online but no luck, can anyone help?... I haven't pasted all the project as the case is similar for the rest fields.

Upvotes: 1

Views: 162

Answers (2)

Moh Raad
Moh Raad

Reputation: 25

i managed to solve it this way after taking support from one of my experienced friends:

<td>
        <div>
            <label for="{{form.Project_Name.name}}">Project Name</label>
            <input type="text" name="Project_Name" id="{{form.Project_Name.name}}">
        </div>
</td>

Upvotes: 0

Bidhan Majhi
Bidhan Majhi

Reputation: 1370

In your html,

<form method="POST" action="#keep it blank or add action as per your requirement" enctype="multipart/form-data">
    {% csrf_token %}
    {% for field in form %}
    <span> {{field.errors}} </span>
    <div> {{field}} </div> #you can add label or placeholder as per your requirement
    {% endfor %}
    <input type="submit" value="Submit">
 </form>

You have not added enctype in your html. Note : You can modify your views.

Upvotes: 1

Related Questions