尝试更改django detailView上的相关模型时获取属性错误
我有一个CarRent车型,它是车型的外键,在CarRent detailView上付款后我想更改CarRent车型和车型,代码对CarRent车型很有效,但更改车型会导致“AttributeError at/Car/requests/4/ 类型对象“Car”没有属性“object”错误尝试更改django detailView上的相关模型时获取属性错误,django,django-models,django-views,Django,Django Models,Django Views,我有一个CarRent车型,它是车型的外键,在CarRent detailView上付款后我想更改CarRent车型和车型,代码对CarRent车型很有效,但更改车型会导致“AttributeError at/Car/requests/4/ 类型对象“Car”没有属性“object”错误 class Car(models.Model): car_owner = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='c
class Car(models.Model):
car_owner = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='car_owner', on_delete=models.CASCADE)
car_model = models.CharField(max_length=20, blank=True, null=True)
rented = models.BooleanField(default=False)
class CarRent(models.Model):
car = models.ForeignKey(Car, related_name='rented_car', on_delete=models.CASCADE)
driver = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='driver_renting', on_delete=models.CASCADE)
active_rent = models.BooleanField(default=False, null=True)
rent_paid = models.BooleanField(default=False)
@login_required
@driver_required(redirect_field_name='app:home')
@csrf_protect
def car_rent_detail_view(request, pk):
object = get_object_or_404(CarRent, id=pk)
# queryset = Car.objects.get(id=pk)
car_object = get_object_or_404(queryset, id=pk)
paystack = PaystackAccount(
settings.PAYSTACK_EMAIL,
settings.PAYSTACK_PUBLIC_KEY,
object.total_cost
)
context = {'object': object, 'pk_public': settings.PAYSTACK_PUBLIC_KEY, 'currency': 'NGN', 'paystack': paystack,
}
if request.method == 'POST':
if paystack.verify_transaction(request.POST['reference']):
messages.success(request, "paystack payment successfull")
car_rented = Car.object.get(pk=pk)
car_rented.rented = True
rent_activation = CarRent.objects.get(pk=pk)
rent_activation.active_rent = True
rent_activation.rent_paid = True
rent_activation.save()
messages.success(request, "Your Rent has successfully being updated")
return render(request, 'app/CarRent_detail.html', context=context)
非常感谢您的帮助。这是一个输入错误,您需要使用
对象来访问管理器方法,而不是对象。因此,请替换:
car_rented = Car.object.get(pk=pk)
^^^^^^
与:
您可以通过相关的\u名称
(即“租用的\u汽车”)将查询从汽车模型反向到CarRent。更多信息可以在中找到。谢谢您的回答,代码运行时没有任何错误,但我没有得到预期的结果,因为不同的车型受到影响,问题似乎是CarRent
的pk值与相关Car
的pk值不同。我需要一种方法来使用queryset选择与特定CarRent相关的汽车。请查看更新的答案谢谢!工作得很有魅力。
car_rented = Car.objects.get(rented_car__pk=pk)