TypeError at /studentform Поле 'prn_no' ожидало число, но получило ('1',)

У меня возникла проблема здесь....so Я создал базу данных MySql и связал ее с фреймворком Django, мой сайт под названием "Система управления школой" имеет 5 таблиц и все они работают безупречно, будь то получение данных от пользователя через формы Django и сохранение их в базе данных mysql или наоборот, но таблица студентов и преподавателей возвращает ту же ошибку, как указано ниже :

TypeError at /studentform Field 'prn_no' expected a number but got ('1',).

Я не понимаю, что приводит к этой ошибке. Отдыхайте все

Я попробовал удалить всю мою миграцию Django и создать ее снова. python manage.py makemigration python manage.py migration

Но все та же ошибка.

Ниже приведены некоторые фрагменты моего кода:

studentform.html

{% extends 'base.html' %}

{% block title %}Student{% endblock title %}

{% block body %}

<div class="container">
    <br>
    <form class="row g-3" method="post" action="/studentform">
    {% csrf_token %}

        <div class="col-md-4">
            <label for="prn_no" class="form-label">prn_no</label>
            <input type="number" class="form-control" id="prn_no" name="prn_no" required>

        </div>

        <div class="col-md-4">
            <label for="fname" class="form-label">fname</label>
            <input type="text" class="form-control" id="fname" name="fname" required>
        </div>

    
        <div class="col-md-4">
            <label for="lname" class="form-label">lname</label>
            <input type="text" class="form-control" id="lname" name="lname" required>
        </div>
    
    <div class="col-md-4">
            <label for="DOB" class="form-label">DOB</label>
            <input type="date" class="form-control" id="DOB" name="DOB" required>
        </div>

    <div class="col-md-4">
            <label for="Address" class="form-label">Address</label>
            <input type="text" class="form-control" id="Address" name="Address" required>
        </div>

        <div class="col-md-3">
            <label for="gender" class="form-label">gender</label>
            <select class="form-select" id="gender" name="gender" required>
                <option selected disabled value="">Choose...</option>
                <option>M</option>
                <option>F</option>
                <option>O</option>
            </select>
        </div>

    <div class="col-md-4">
            <label for="Standard" class="form-label">Standard</label>
            <input type="text" class="form-control" id="Standard" name="Standard" required>
        </div>



      <div class="col-md-6">
            <label for="guardian_id" class="form-label">guardian_id</label>
            <input type="text" class="form-control" id="guardian_id" name="guardian_id" required>
      </div>

        <br>
        <div class="col-12">
            <button class="btn btn-primary" type="submit" >Submit Data</button>
        </div>
    </form>
</div>

{% endblock body %}

views.py

def studentform(request):
    if request.method == "POST":
        prn_no = request.POST.get('prn_no'),
        fname = request.POST.get('fname'),
        lname = request.POST.get('lname'),
        dob = request.POST.get('dob'), 
        address = request.POST.get('address'), 
        gender = request.POST.get('gender'), 
        standard = request.POST.get('standard'),
        guardian_id = request.POST.get('guardian_id') 

        s1 = student1(prn_no = prn_no , fname = fname , 
                             lname = lname, dob = dob , address = address , 
                              gender = gender, standard = standard , guardian_id = guardian_id )

        s1.save()
    return render(request,'studentform.html')

models.py

class student1(models.Model):
    prn_no      = models.IntegerField()
    fname       = models.CharField(max_length=20)
    lname       = models.CharField(max_length=20)
    dob         = models.DateField()
    address     = models.CharField(max_length=20)
    gender      = models.CharField(max_length=20)
    standard    = models.CharField(max_length=20)
    guardian_id = models.CharField(max_length=20)

    class Meta:
        app_label = 'page1'
        db_table='student'

Ошибка возврата:

В ошибке говорится, что prn_no ожидается, что это будет строка, тогда как для prn_no присвоен кортеж. Чтобы исправить это, в вашем views.py файле необходимо удалить запятые в конце каждой строки.

def studentform(request):
    if request.method == "POST":
        prn_no = request.POST.get('prn_no')
        fname = request.POST.get('fname')
        lname = request.POST.get('lname')
        dob = request.POST.get('dob')
        address = request.POST.get('address')
        gender = request.POST.get('gender')
        standard = request.POST.get('standard')
        guardian_id = request.POST.get('guardian_id') 

        s1 = student1(prn_no = prn_no , fname = fname , 
                             lname = lname, dob = dob , address = address , 
                              gender = gender, standard = standard , guardian_id = guardian_id )

        s1.save()
    return render(request,'studentform.html')
Вернуться на верх