简体   繁体   English

如何仅在Django中打印当前登录的用户数据?

[英]How can I only print the the current logged in user data in Django?

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

models.py models.py

class placement(models.Model):
    user=models.ForeignKey(User,related_name='placeid', null=True, default=None,on_delete=models.CASCADE)
    name=models.CharField(max_length=150, blank=True, null=True)  
    ad_space=models.CharField(max_length=100, blank=False, null=False)  
    PID_TYPE = (  
        ('FN','FORMAT_NATIVE'),  
        ('FNB','FORMAT_NATIVE_BANNER'),  
        ('FI','FORMAT_INTERSTITIAL'),  
        ('FB','FORMAT_BANNER'),  
        ('FMR','FORMAT_MEDIUM,RECT'),  
        ('FRV','FORMAT_REWARDED_VIDEO'),  
    )

    format = models.CharField(max_length=3,choices = PID_TYPE,default = 'FN',blank=False, null=False)
    pid=models.CharField( max_length=50,default='',blank=False, null=False)
    cpm=models.IntegerField(default=0,blank=False, null=False)
    ADS_TYPE=(
        ('FB','FACEBOOK'),
        ('G','GOOGLE'),
    )
source=models.CharField(max_length=2,choices=ADS_TYPE,default='FB',blank=False, null=False)
    comments=models.TextField(default='',blank=False, null=False)  
    objects=models.Manager()


    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse("dashapp:disp")

views.py views.py

class createPlace(LoginRequiredMixin,CreateView):  
    fields=('name','ad_space','format','pid','cpm','source','comments')
    model=placement  
    template_name='createpl.html'  
    def form_valid(self, form):  
        form.instance.user = User.objects.get(id = self.request.user.id)  
        return super(createPlace, self).form_valid(form)  


class Idlist(LoginRequiredMixin,ListView):

    model=placement
    template_name='placement_list.html'
    def get_queryset(self):
        query_set=super().get_queryset()
        return query_set.filter(placement.objects.filter(user=self.request.user))

Now What query i have to make in Idlist class in Views.py to fetch only the current logged in user related data. 现在我有什么查询在作出IdlistViews.py获取只有在用户相关数据的当前登录。 And the query that I'm Perfroming in Idlist is giving me error as 我在Idlist中Idlist的查询给了我错误

Exception Type: ValueError Exception Value: too many values to unpack (expected 2)

I'm New to to this and any help would be best for me. 我对此并不陌生,任何帮助对我来说都是最好的。 Please have a look and help a newbie out 请看看并帮助新手

You should filter the queryset itself, like: 您应该过滤查询集本身,例如:

class Idlist(LoginRequiredMixin,ListView):

    model=placement
    template_name='placement_list.html'

    def get_queryset(self):
        query_set=super().get_queryset()
        return query_set.filter(user=self.request.user)

So we apply a .filter(..) on the query_set such that we only obtain placement s with user is self.request.user . 因此,我们应用.filter(..)query_set这样,我们只得到placement与S userself.request.user

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM