使用questionsModel.values()后不能获取模型中的属性对应的外键属性值的解决方式
class QuestionsModel(models.Model): author = models.ForeignKey(FrontUserModel,null=True) content = models.TextField(null=False) create_time = models.DateTimeField(auto_now_add=True)
1.在questions模型中,有个author外键
2.使用questions = QuestionsModel.objects.all()
questionsModel = questions.values()
这里返回的是一个字典,author改变为一个键值对,非author模型 因此,是无法通过auth.username来获取对应的用户信息。
解决方式:
1.遍历questions模型,得到author属性author_id的值。
2.利用值进行查询当前用户的属性。
3.将查询到的用户信息和questions模型同时返回
tmp_questions =[] for q in questions: user = FrontModel.objects.get(id=q['author_id']) tmp_questions.append({'username':user.username,'desc':q})
另一种方式:
1.在values中采用 questionsModel = questions.values('author__username ')的方式获得用户信息。