Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Don';我不想在django中显示模型对象的所有项_Python_Django - Fatal编程技术网

Python Don';我不想在django中显示模型对象的所有项

Python Don';我不想在django中显示模型对象的所有项,python,django,Python,Django,我的models.py中有两个模型,每个任务都有一个项目。但是当我进入任务页面时,默认情况下它会列出所有任务。因此,我希望它在默认情况下只列出当前用户的任务。任务的所有者=当前用户。 谁能帮我,谢谢 我在网上搜索,然后得到了解决方案: 我更新了刚才粘贴的代码。 谢谢大家。为什么不这样做呢 class TaskManager(models.Manager): def get_query_set(self): return super(TaskManager, self).

我的models.py中有两个模型,每个任务都有一个项目。但是当我进入任务页面时,默认情况下它会列出所有任务。因此,我希望它在默认情况下只列出当前用户的任务
。任务的所有者=当前用户。
谁能帮我,谢谢

我在网上搜索,然后得到了解决方案: 我更新了刚才粘贴的代码。 谢谢大家。

为什么不这样做呢

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
更新:

1) 如果要在自己的自定义模板中进行筛选,请将其添加到视图代码中

2) 如果您试图自定义管理站点,请执行此操作

Task.objects.filter(owner = current_user)
为什么不这样做呢

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
更新:

1) 如果要在自己的自定义模板中进行筛选,请将其添加到视图代码中

2) 如果您试图自定义管理站点,请执行此操作

Task.objects.filter(owner = current_user)

我只想修改模型的默认过滤器,使模型列表中没有modelAdmin的所有项目,因为modelAdmin只提供了一个需要手动单击的过滤器,我想在默认情况下自动过滤模型我只想修改模型的默认过滤器,使模型列表中不包含modelAdmin的所有项目,因为modelAdmin只提供了一个需要手动单击的过滤器,我希望默认情况下自动过滤模型,在modelAdmin类中,您应该添加:

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)
这将覆盖默认的查询集

详情如下:

在ModelAdmin类中,您应该添加:

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)
这将覆盖默认的查询集

详情如下:

如果您有自定义视图,则必须将其放置在其中如果我没有自定义视图,则无法设置筛选器?请在呈现任务页面的视图中输入代码,并将筛选后的任务作为上下文发送到模板。感谢Raunak,这正是我想要的如果您有自定义视图,您必须将其放置在其中如果我没有自定义视图,我无法设置筛选器?请在呈现任务页面的视图中输入代码,并将筛选后的任务作为上下文发送到模板。感谢Raunak,这正是我想要的如果您有其他信息,它应该作为编辑或评论添加到原始帖子中,而不是作为答案!很抱歉,我不熟悉这个论坛的规则。如果您有其他信息,应该将其添加为对原始帖子的编辑或评论,而不是回答!很抱歉,我不熟悉这个论坛的规则。你能发布你的URL.py文件吗?任务页面是你定义的视图吗?你能发布你的URL.py文件吗?任务页面是你定义的视图吗?点击过滤,可以在html模板中配置。如果这是您唯一的问题,您应该使用管理员:)单击过滤器,可以在html模板中配置。如果这是您唯一的问题,您应该使用管理员:)