I am trying to save my model to db but I keep getting the error expected string or bytes-like object
. I tried searching and I thing I am passing it as tuple but I cannot figure out where I made the mistake.
Here is the view of the post route:
class PreviousSearchView(View):
def post(self, request):
if request.method == 'POST':
searchdomain = request.POST['searchdomain']
domain = whois.whois(searchdomain)
date = datetime.datetime.now()
domain_name = domain.domain_name
creation_date = domain.creation_date
expiration_date = domain.expiration_date
org = domain.org
city = domain.city
state = domain.state
zipcode = domain.zipcode
country = domain.country
search = Search(
searchdomain = domain_name,
org = domain.org,
city = domain.city,
state = domain.state,
zipcode = domain.zipcode,
country = domain.country,
user = User.objects.get(id = request.user.id),
date = date,
creation_date = domain.creation_date,
expiration_date = domain.expiration_date,
)
search.save() ## This is where the error is coming
return redirect('/')
Here is the model:
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
class User(AbstractUser):
pass
class Search(models.Model):
searchdomain = models.CharField(max_length=50)
creation_date = models.DateField(null=True)
expiration_date = models.DateField(null=True)
org = models.CharField(max_length=80, null=True)
date = models.DateField(null=True)
city = models.CharField(max_length=30, null=True)
state = models.CharField(max_length=30, null=True)
zipcode = models.IntegerField(null=True)
country = models.CharField(max_length=30, null=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.searchdomain
Here is the full traceback:
Traceback (most recent call last):
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\views\generic\base.py", line 70, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\views\generic\base.py", line 98, in dispatch
return handler(request, *args, **kwargs)
File "E:\whois_app\whois_app\search\views.py", line 45, in post
search.save()
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\base.py", line 753, in save
self.save_base(using=using, force_insert=force_insert,
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\base.py", line 790, in save_base
updated = self._save_table(
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\base.py", line 895, in _save_table
results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\base.py", line 933, in _do_insert
return manager._insert(
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\query.py", line 1254, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\sql\compiler.py", line 1396, in execute_sql
for sql, params in self.as_sql():
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\sql\compiler.py", line 1339, in as_sql
value_rows = [
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\sql\compiler.py", line 1340, in <listcomp>
[self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\sql\compiler.py", line 1340, in <listcomp>
[self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\sql\compiler.py", line 1281, in prepare_value
value = field.get_db_prep_save(value, connection=self.connection)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\fields\__init__.py", line 823, in get_db_prep_save
return self.get_db_prep_value(value, connection=connection, prepared=False)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\fields\__init__.py", line 1222, in get_db_prep_value
value = self.get_prep_value(value)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\fields\__init__.py", line 1217, in get_prep_value
return self.to_python(value)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\db\models\fields\__init__.py", line 1179, in to_python
parsed = parse_date(value)
File "C:\Users\indianLeo\.virtualenvs\whois_app-4Kx6o2xE\lib\site-packages\django\utils\dateparse.py", line 75, in parse_date
match = date_re.match(value)
TypeError: expected string or bytes-like object
Also I tried removing the date field and migrated but it still did not work. I am also adding the form I am rendering.
class SearchForm(forms.ModelForm):
class Meta:
model = Search
fields = '__all__'
exclude = ('date', 'user', 'city', 'state', 'country', 'zipcode', 'expiration_date', 'creation_date', 'org')