我正在处理 django 用户模型的“扩展”模型。这是我模型的定义:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True, editable=False)
real_name = models.CharField('Real Name', max_length=20)
telephone = models.CharField('Tel', max_length=30)
company = models.CharField('Company', max_length=30)
department = models.CharField('Department', max_length=30)
如您所见,我的 UserProfile 模型通过“ForeignKey”与 django 的内置用户模型具有“一对一”关系,我知道另一个 solotion 正在使用“OneToOneField”,有人可以告诉我哪个一个是首选还是更适合这里?
现在,我的情况是,我在视图函数中获取了我的 UserProfile 模型和 django 内置 User 模型的组合信息。另外,我需要在这里做一些分页。
def get_user_list(request):
rows_per_page=int(request.POST["rows"])
page_number=int(request.POST["page"])
user_list = User.objects.all()# You can see that I only got the built-in User ,
total=user_list.count() #but how to get my UserProfile efficiently ?
paginator = Paginator(user_list, rows_per_page)
try:
rows = paginator.page(page_number)
except PageNotAnInteger:
rows = paginator.page(1)
except EmptyPage:
rows = paginator.page(paginator.num_pages)
result={
"total":total,
"rows":rows.object_list,
}
jsonSerializer = JSONSerializer()
return HttpResponse(jsonSerializer.serialize(result),mimetype='application/json')
现在,我的问题是,如何组合我的 UserProile 模型和内置的 User 模型来制作查询集、列表、字典或其他任何东西,我还需要组合对象以适合我现有的分页代码。:)非常感谢!