2017-09-21 18 views
1

私はすべてのユーザーレポートを取得し、それらをページテンプレートに渡そうとしています。私の質問はuser_id = 1でどのようにフィルタリングするのですか?Django user_IDで値を取得する方法

views.py

data = report.objects.values() 
return render(request,'list.html',data) 

models.py

class user(models.Model): 
    firstname = models.CharField(max_length=250) 
    lastname = models.CharField(max_length=250) 
    email = models.CharField(max_length=250) 
    password = models.CharField(max_length=250) 
    newsletter = models.BooleanField(default=0) 
    accountlevel = models.BigIntegerField(default=1) 
    reportsCreated = models.BigIntegerField(default=0) 

class report(models.Model): 
    user = models.ForeignKey(user, on_delete=models.CASCADE) 
    name = models.CharField(max_length=250) 
    dateran = models.DateField() 
    fromdate = models.DateField() 
    todate = models.DateField() 
    state = models.IntegerField() 
    graphURL = models.CharField(max_length=1000) 
    reporttype = models.CharField(max_length=250) 

答えて

0

次のようなその特定のユーザのgivenuseridを使用して、すべてのレポートをフィルタすることができます。 HTMLで

reports = report.objects.filter(user__id=givenuserid) 

{% for report in reports %} 
    {{report.name}} 
    {{report.state}} 
{% endfor %} 

注:ここReportの代わりreportのようUppercaseで始まるモデルに名前を付けるようにしてください。

+0

おそらく、あなたの*テンプレートを参照して、次の参照してください*コードを "テンプレートの中に"書いてください。 – Melvyn

+0

あなたの助けてくれてありがとう、私は次のエラーを取得しています "コンテクストはQuerySetではなくdictでなければなりません" –

+0

これはあなたが持っているデータでコンテクスト辞書を作って、 。 –

0

views.pyでは、ユーザーIDで値をフィルタリングできます。

それが動作するようになったコード

data = report.objects.filter(user__id=your_user_id).values() 
return render(request,'list.html',data) 
+0

ありがとう、以下のエラーを取得するには、コンテキストはQuerySetではなくdictでなければなりません。 –

0

、私はコンテキストがありませんでした、

data = Report.objects.filter(user__id=1).values() 
context = {'data': data} 
return render(request,'list.html',context) 

は、あなたの助けを求めるいただきありがとうございます:)

関連する問題