Hello,
I am working on an app where car owner will list their car and drivers interested in renting them will make a request to rent the cars… i basically have three models the *users*(car owners and drivers) *car* listed by owners, and *rent, *i have a listView to list all the car available and a detailView for each car, i have a button on the detailed view, when clicked i want it to take some of the information on the detailed view and save it in the* rent *model… But i am getting a ValueError (Cannot query "testuser1": Must be "Listing" instance). But i also need to store the driver(testuser1 in this case) in the Rent model. Thanks in advance... any help is hugely appreciated Below are my view.py, models.py and error messages: *view.py* class ListingDetailView(DetailView): model = Listing def post_rent(self, request, pk, *args, **kwargs): user = request.User listing = get_object_or_404(Listing, pk=pk) rent, created = Rent.objects.get_or_create( car_owner=listing.car_owner, driver=request.user, car_id=listing.pk) rent.save(request.POST) messages.info(request, *"Rent request has been made succesfully."*) return redirect(*'/'*) *models.py* class Listing(models.Model): DEF_YEAR = *'2003'* CAR_YEAR_CHOICES = [(*'2002'*, *'2002'*), (*'2003'*, *'2003'*), ( *'2004'*, *'2004'*), (*'2005'*, *'2005'*), (*'2006'*, *'2006'*), (*'2007'*, *'2007'*), ( *'2008'*, *'2008'*), (*'2009'*, *'2009'*), (*'2010'*, *'2010'*), (*'2011'*, *'2011'*), ( *'2012'*, *'2012'*), (*'2013'*, *'2013'*), (*'2014'*, *'2014'*), (*'2015'*, *'2015'*), ( *'2016'*, *'2016'*), (*'2017'*, *'2017'*), (*'2018'*, *'2018'*), (*'2019'*, *'2019'*), ( *'2020'*, *'2020'*), ] NEW = *'New'* USED = *'Used'* OLD = *'Old'* CAR_CONDITION_CHOICES = [(*'NEW'*, *'New'*), (*'USED'*, *'Used'*), ( *'OLD'*, *'Old'*)] car_owner = models.ForeignKey(User, on_delete=models.CASCADE) car_make = models.CharField(max_length=50) car_model = models.CharField(max_length=50) car_year = models.CharField(max_length=4, choices=CAR_YEAR_CHOICES, default=DEF_YEAR) car_condition = models.CharField(max_length=4, choices=CAR_CONDITION_CHOICES, default=OLD) car_pic1 = models.ImageField(default=*'car.png'*, upload_to= *"car_listing-photos"*) weekly_charges = models.FloatField() def __str__(self): return *f'*{self.car_year} {self.car_make} {self.car_model}*'* def get_absolute_url(self): return reverse(*'listing-detail'*, kwargs={*'pk'*: self.pk}) class Rent(models.Model): car_id = models.BigIntegerField(null=True, blank=True) car_owner = models.ForeignKey(Listing, on_delete=models.SET_NULL, null=True, blank=True) driver = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) start_date = models.DateField(null=True, blank=True) end_date = models.DateField(null=True, blank=True) approved = models.BooleanField(default=False) *listing_detail.html* <form method="POST"> {% csrf_token %} <button type="submit" name="hire-car" class="btn btn-primary">Rent Car</button> </form> *Error Message* *ValueError at /listing/2/* Cannot query "testuser1": Must be "Listing" instance. *Request Method:* POST *Request URL:* http://127.0.0.1:8000/listing/2/ *Django Version:* 3.1 *Exception Type:* ValueError *Exception Value:* Cannot query "testuser1": Must be "Listing" instance. *More Error Dump:* Environment: Request Method: POST Request URL: http://127.0.0.1:8000/listing/2/ Django Version: 3.1 Python Version: 3.8.5 Installed Applications: ['accounts.apps.AccountsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app.apps.AppConfig', 'crispy_forms'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Traceback (most recent call last): File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 179, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/views/generic/base.py", line 73, in view return self.dispatch(request, *args, **kwargs) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/views/generic/base.py", line 101, in dispatch return handler(request, *args, **kwargs) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/app/views.py", line 32, in post rent, created = Rent.objects.get_or_create( File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/manager.py", line 85, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/query.py", line 573, in get_or_create return self.get(**kwargs), False File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/query.py", line 418, in get clone = self._chain() if self.query.combinator else self.filter(*args, **kwargs) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/query.py", line 942, in filter return self._filter_or_exclude(False, *args, **kwargs) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/query.py", line 962, in _filter_or_exclude clone._filter_or_exclude_inplace(negate, *args, **kwargs) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/query.py", line 969, in _filter_or_exclude_inplace self._query.add_q(Q(*args, **kwargs)) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/sql/query.py", line 1358, in add_q clause, _ = self._add_q(q_object, self.used_aliases) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/sql/query.py", line 1377, in _add_q child_clause, needed_inner = self.build_filter( File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/sql/query.py", line 1292, in build_filter self.check_related_objects(join_info.final_field, value, join_info.opts) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/sql/query.py", line 1119, in check_related_objects self.check_query_object_type(value, opts, field) File "/Users/ChuzzyOfficial/PycharmProjects/djangoProject/instarydes/.venv/lib/python3.8/site-packages/django/db/models/sql/query.py", line 1100, in check_query_object_type raise ValueError( Exception Type: ValueError at /listing/2/ Exception Value: Cannot query "testuser1": Must be "Listing" instance. -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/4aae705a-c42b-4c94-b98b-4ed372e5a33cn%40googlegroups.com.