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.