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

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

Мой файл model.py

from django.db import models

# Create your models here.
class Details(models.Model):
    name = models.CharField(max_length=25)
    roof_age = models.IntegerField()
    email = models.EmailField()
    phone = models.IntegerField()
    address = models.TextField(max_length=100)
    monthly_bill = models.IntegerField()
    HOA = models.BooleanField(default=True)
    battery = models.BooleanField(default=True)
    foundation = models.BooleanField(default=True)
    roof_type = models.CharField(max_length=20)
    availability = models.DateTimeField()
    bill = models.FileField(upload_to='uploads/%d/%m/%y/')

    class Meta:
        verbose_name = 'details'
        verbose_name_plural = 'details'

    def __str__(self):
        return self.name 

Мой файл views.py

def form(requests):
    if requests.method == 'POST':
        name=requests.POST['name'], 
        roof_age=requests.POST['roof_age'], 
        email = requests.POST['email'],
        phone = requests.POST['phone'], 
        address = requests.POST['address'],
        monthly_bill = requests.POST['monthly_bill'], 
        HOA = requests.POST['HOA'], 
        battery = requests.POST['battery'], 
        foundation = requests.POST['foundation'], 
        roof_type = requests.POST['roof_type'],
        availability= requests.POST['availability'],
        bill = requests.POST['bill']

        details = Details(
            name = name, 
            roof_age = roof_age, 
            email = email,
            phone = phone, 
            address = address,
            monthly_bill = monthly_bill, 
            HOA = HOA, 
            battery = battery, 
            foundation = foundation, 
            roof_type = roof_type,
            availability= availability,
            bill = bill
        )
        
        print(name, roof_age, email, phone, address, monthly_bill, HOA,battery, foundation, roof_type, availability, bill)
        print("The data has been save to db")
        details.save()

    return render(requests, 'baskin/form.html')

Оператор print выдавал результаты в виде кортежей

Теперь я получаю TypeError: Поле 'roof_age' ожидало число, но получило ('1',).

Как я могу решить эту проблему?

попробуйте добавить int в этот код: roof_age=int(requests.POST.get['roof_age']), возможно requests.POST get value type is string, но в вашем model.py roof_age is IntegerField.

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