2024-06-14 20:08:04 发布
网友
如何为CBV编写一个通用Mixin,以便queryset只返回登录用户拥有的数据?你知道吗
在django有可能吗?你知道吗
如果是…有人能给我具体的建议或回答如何在django。。。你知道吗
谢谢
就像这样
class MyMixin: def get_queryset(self): qs = super(MyMixin, self).get_queryset() return qs.filter(owner=self.request.user)
如果你需要更灵活的方法,你可以做
class MyMixin: my_field = None def get_queryset(self): qs = super(MyMixin, self).get_queryset() return qs.filter(**{self.my_field=self.request.user})
而在每一个类中都比使用mixin你需要将这个字段替换为用户的例子
from django.db import models class MyModel(models.Model): user_owner = models.ForeignKey( User, on_delete=models.CASCADE, )
然后在列表视图中使用模型MyModel实现mixin。t型
from django.views import generic class MyModelListView(MyMixin, generic.ListView): model = MyModel my_field = "user_owner"
var my\ u字段必须与模型中的字段同名
就像这样
如果你需要更灵活的方法,你可以做
而在每一个类中都比使用mixin你需要将这个字段替换为用户的例子
然后在列表视图中使用模型MyModel实现mixin。t型
var my\ u字段必须与模型中的字段同名
相关问题 更多 >
编程相关推荐