如何在NewUser模型中获取收入? 我想用用户的收入数据来过滤汽车模型的数据。如果NewUser的收入=汽车收入,我的理想系统是汽车名称显示在car.html中。 我在models.py中写道
class NewUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
income = models.CharField(max_length=20, null=True, default=None)
class Car(models.Model):
name = models.CharField(max_length=100, null=True, default=None)
income = models.CharField(max_length=20, null=True, default=None)
在views.py中
from app.models import Car
from django.shortcuts import render
def car(request):
car_data = Car.objects.all().filter(income=request.user.income)
return render(request, 'car.html', {'car_data': car_data})
当我访问car方法时,/ app / car /上的AttributeError '用户'对象没有属性'收入'错误发生。我真的不明白为什么会发生这样的错误。我在NewUser中继承用户模型,所以我想我可以在request.user中访问收入。我该怎么解决这个问题?什么是我的代码错了吗?
答案 0 :(得分:1)
您收到该错误,因为用户表没有收入列。它是具有它的NewUser模型。 由于NewUser和User之间存在OneToOneField,您只需执行以下操作:
car_data = Car.objects.all().filter(income=request.user.newuser.income)
另外,您声明在NewUser中继承了User模型,但事实并非如此,NewUser继承了models.Model。