13

どうすれば次のことを達成できますか...

ポイントオブジェクトがテンプレートに表示されるたびに、現在のユーザーによって常にフィルタリングされる必要があります。そこで、モデル内で以下のコードを試しました。

これは可能ですか?どうすれば上記を達成できますか?

Models.py

from django.db import models
from django.contrib.auth.models import User


POINTS_PENDING, POINTS_ADDED, POINTS_DEDUCTED, ORDER_PROCESSING = range(4)
STATUS_OPTIONS = (
    (POINTS_PENDING, ('Pending')),
    (POINTS_ADDED, ('Added')),
    (POINTS_DEDUCTED, ('Deducted')),
    (ORDER_PROCESSING, ('Processing')),
    )


class PointsManager(models.Manager):

    def points_list(self,User):
        list = Points.objects.filter(points_user=User).exclude(status=ORDER_PROCESSING)
        return list


class Points (models.Model):
    user = models.ForeignKey(User)
    points = models.IntegerField(verbose_name=("Points"), default=0)
    created = models.DateTimeField(("Created at"), auto_now_add=True)
    updated = models.DateTimeField(verbose_name=("Updated at"), auto_now=True)

    objects = PointsManager()
4

1 に答える 1

14

を使用して、ビューにユーザーがいることを確認できます

@login_requiredデコレータ

次に、ビュー内のユーザーごとにポイントをクエリできます

user_points = Points.objects.filter(user=request.user)

または逆FKルックアップを使用する

request.user.points_set.all()

于 2012-12-25T00:33:38.223 に答える