不要在django中显示模型对象的所有项目 [英] Don't want show all items of a model object in django
问题描述
def get_query_set(self)
返回超级(TaskManager,self).get_query_set()。filter(Owner = 'jim')
class Task(models.Model):
Name = models.CharField('Title',max_length = 200)
Notes = models.TextField('Description ',max_length = 2000,null = True)
project = models.ForeignKey(Project,null = True,blank = True)
Owner = models.CharField(max_length = 100,choices = owner_set)
objects = TaskManager()
def __unicode __(self):
return self.Name
我的models.py有两个模型,每个Task都有一个项目。但是当我进入任务页面时,它将默认列出所有任务。所以我希望它默认仅列出当前用户的任务
。这是Task.Owner =当前用户。
谁可以帮助我,谢谢!
我从网上搜索,然后得到解决方案:
我更新我粘贴的代码就在上面。
感谢所有人。
为什么不这样做?
Task.objects.filter(owner = current_user)
更新:
1)如果要过滤自己的自定义模板,请将其添加到您的视图代码
2)如果您尝试自定义管理网站,请执行以下操作:
from django.contrib import admin
from模型导入MyModel
class TaskAdmin(admin.ModelAdmin):
def queryset(self,request):
return super(TaskAdmin,self).queryset(request ).filter(owner = request.user)
admin.site.register(Task,TaskAdmin)
class TaskManager(models.Manager):
def get_query_set(self):
return super(TaskManager, self).get_query_set().filter(Owner='jim')
class Task(models.Model):
Name = models.CharField('Title', max_length=200)
Notes = models.TextField('Description',max_length=2000, null=True)
project = models.ForeignKey(Project,null=True, blank=True)
Owner = models.CharField(max_length=100, choices=owner_set)
objects = TaskManager()
def __unicode__(self):
return self.Name
I have two models in my models.py, every Task has a project. But when i enter the Task page, it will list all the task by default. So i want it to list only the current user's Task by default
. It is that the Task.Owner=current user.
Who can help me with this, thanks!
I have searched from the net and then get the solution: I update the code i pasted just now above. Thanks for all.
Why not do this!
Task.objects.filter(owner = current_user)
Update:
1) If you want to filter in you own custom template add this to your view code
2) If you are trying to customize the admin site do this,
from django.contrib import admin
from models import MyModel
class TaskAdmin(admin.ModelAdmin):
def queryset(self, request):
return super(TaskAdmin, self).queryset(request).filter(owner = request.user)
admin.site.register(Task, TaskAdmin)
这篇关于不要在django中显示模型对象的所有项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!