2012-12-25 30 views
5

Làm thế nào để đạt được sau ....mô hình Django: Lọc bởi người sử dụng, luôn

Mỗi lần các đối tượng điểm được hiển thị trong một mẫu nó phải luôn được lọc bởi người sử dụng hiện nay. Vì vậy, trong mô hình tôi đã thử mã dưới đây.

Điều này có khả thi không? làm thế nào tôi có thể đạt được những điều trên?

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() 

Trả lời

11

bạn có thể đảm bảo rằng quan điểm của bạn có một người dùng bằng cách sử dụng

@login_required trang trí

sau đó bạn có thể có thể truy vấn cho điểm bằng cách sử dụng theo quan điểm của bạn

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

hoặc sử dụng đảo ngược FK lookup

request.user.points_set.all()

Các vấn đề liên quan