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()
经过一番思考,我想外键对我的数据库会更好。所以,谢谢你多走一步。经过一番思考,我想外键对我的数据库会更好。谢谢你多走了一步。