Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何检索已提交表单的登录用户的最新模型对象?_Django_Django Views_Django Queryset - Fatal编程技术网

Django 如何检索已提交表单的登录用户的最新模型对象?

Django 如何检索已提交表单的登录用户的最新模型对象?,django,django-views,django-queryset,Django,Django Views,Django Queryset,我试过这样的东西 customer=Customer.objects.filter(id=request.user.id).latest('first_name', 'last_name') customer.first_name 但是,这会从通过表单提交的first_name字段(在早期提交中)中获取登录用户的旧数据。(假设登录用户提交了3次,它会获取第一次提交的数据,而不是最近提交的数据。) 我阅读了最新的()方法并实现了这个 customer=Customer.objects.lates

我试过这样的东西

customer=Customer.objects.filter(id=request.user.id).latest('first_name', 'last_name')
customer.first_name
但是,这会从通过表单提交的first_name字段(在早期提交中)中获取登录用户的旧数据。(假设登录用户提交了3次,它会获取第一次提交的数据,而不是最近提交的数据。)

我阅读了最新的()方法并实现了这个

customer=Customer.objects.latest('id')
但正如我们所知,这只会呈现最后提交的详细信息,而不一定是登录用户的详细信息

这是我的model.py供参考

class Customer(models.Model):

    id=models.AutoField(primary_key=True, default=None)
    customerReg=models.OneToOneField(User, on_delete=models.SET_NULL, null=True, blank=True)
    first_name=models.CharField(max_length=200, blank=False, default=None)
    last_name=models.CharField(max_length=200, blank=False, default=None)

那么,我该如何查询这些信息呢?

使用
down
排序按用户获取
最新的
模型对象:

customer = Customer.objects.filter(id=request.user.id).order_by('-id')

使用
down
排序按用户获取
最新的
模型对象:

customer = Customer.objects.filter(id=request.user.id).order_by('-id')

由于
用户
客户
之间的关系是,您可以简单地使用:

try:
    customer = user.customer
except:
    customer = None
如果它是一个
ForeignKey
关系,那么您可以使用:

customer = request.user.customer_set.last()

由于
用户
客户
之间的关系是,您可以简单地使用:

try:
    customer = user.customer
except:
    customer = None
如果它是一个
ForeignKey
关系,那么您可以使用:

customer = request.user.customer_set.last()

经过一番思考,我想外键对我的数据库会更好。所以,谢谢你多走一步。经过一番思考,我想外键对我的数据库会更好。谢谢你多走了一步。