私は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の組み込みユーザーモデルと「1対1」の関係にあります。別のsulotionが「OneToOneField」を使用していることを知っています。ここでは1つが優先されますか、それともより適切ですか?
今、私の状況は、ビュー関数で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モデルの組み合わせを取得して、クエリセット、リスト、辞書などを作成する方法です。また、既存のページネーションコードに適合する組み合わせオブジェクトが必要です。:)どうもありがとうございます!