使Django模型条目对每个用户都是唯一的

时间:2014-08-22 00:24:47

标签: python django django-models

我正在使用Django中的系统,用户将输入一个股票代码,该代码将被保存(使用模型)。当他们登录时,他们会看到他们输入的股票代码。但是,因为目前每个人都看到相同的条目,这是他们所有输入的集合。

这是我的models.py文件:

class StockTickerSymbol(models.Model):
    StockName = models.CharField(max_length=6)


    test = models.CharField(default="Test", max_length=100)
    added_date = models.DateTimeField('Date Added', default=datetime.now)

    def __unicode__(self):
         return self.StockName

这是我的views.py文件:

def fav(request):
    context = RequestContext(request)

    favorites_list = StockTickerSymbol.objects.order_by('-added_date')
    context_dict = {'favorites': favorites_list}

    return render_to_response('favorites/favorites.html', context_dict, context)

无论如何,我可以让用户只看到自己的条目,而不是看到每个人的条目?感谢

1 个答案:

答案 0 :(得分:2)

您的模型需要对用户模型的引用,因此您可以将查询集限制为请求用户,如下所示:

<强>模型

from django.contrib.auth.models import User

class StockTickerSymbol(models.Model):
    StockName = models.CharField(max_length=6)
    user = models.ForeignKey(User)

    test = models.CharField(default="Test", max_length=100)
    added_date = models.DateTimeField('Date Added', default=datetime.now)

    def __unicode__(self):
         return self.StockName

查看

def fav(request):
    context = RequestContext(request)

    favorites_list = StockTickerSymbol.objects.filter(user=request.user).order_by('-added_date')
    context_dict = {'favorites': favorites_list}

    return render_to_response('favorites/favorites.html', context_dict, context)