小编Mor*_*ran的帖子

如何在不显式声明所有模型上的所有者字段的情况下分配 Django 对象所有权?

我目前正在尝试找出 Django 网站 API 的每个用户对象权限。

我有几个包含敏感信息的模型,我需要能够根据用户进行过滤。

对于其中一个模型的简化示例:

  • 餐厅,网站的主要客户。

  • 用户,创建用户帐户时,每个用户都会被分配一家餐厅。因此,一家餐厅可以拥有许多用户,并且他们都只能访问该餐厅的信息。

  • 烤箱,属于特定餐厅。一家餐厅可以有很多烤箱。

  • 食谱,属于烤箱。烤箱可以有许多不同的食谱。

  • 配方结果,属于配方。同一配方可能有许多不同的配方结果(尝试了不同的成分等)。

至少有 12+ 种不同的型号。特定餐厅的所有模型都必须对其他餐厅隐藏,毕竟我们不希望他们能够查看其他餐厅的食谱!

并非所有模型都有 user = models.ForeignKey(User)

无需进入我的每个模型并声明owner = models.ForeignKey(User),是否有一种方法可以在我的API列表视图和详细信息视图中过滤它们?

目前我的列表 API 视图如下所示(简化示例):

class RecipeResultsListAPIView(ListAPIView):
    queryset = RecipeResults.objects.all()
    queryset = queryset.prefetch_related('oven')
    serializer_class = RecipeResultsListSerializer 
    filter_backends = (DjangoFilterBackend,)
    filter_fields = ('id', 'time', 'oven', 'recipe_name', 'recipe_description')
    pagination_class = ExpertPageNumberPagination

    def list(self, request):
       user = User.objects.get(username=request.user)
       restaurant = Restaurant.objects.get(user=user)
       ovens = Oven.objects.filter(restaurant=restaurant)
       queryset = RecipeResults.objects.filter(oven__in=ovens)
       serializer = RecipeResultsListSerializer(queryset, many=True, context={'request':request})
       return Response(serializer.data)
Run Code Online (Sandbox Code Playgroud)

其模型如下所示:

class RecipeResults(models.Model):
    time = models.DateTimeField()
    oven = models.ForeignKey(Oven, …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-rest-framework

5
推荐指数
1
解决办法
5236
查看次数

在元素上添加水平和垂直渐变渐变

有没有办法让背景从左到右渐变,从深红色到浅红色(仅作为示例),同时从顶部 100% 不透明度到底部 0% 不透明度渐变?

它与对角渐变不同,它是 X 轴为颜色、Y 轴为透明度的渐变。

我一直在尝试看看我是否可以做到,但我找不到办法。

[编辑]

这是我所拥有的图片。它只是 bootstrap 的模板之一。

如您所见,我有一个从左(深红色)到右(浅红色)的渐变。

我还希望整个元素在底部淡入白色,以便该部分的截止不是突然的,而是渐进的。

实施例1

正如您在这里所看到的,采用对角线解决方案时,左侧的边缘仍然非常锋利。我想要的是整个底部褪色为白色,即 Y 轴上的透明度渐变,而 X 轴上仍然有从左到右的颜色渐变。

实施例2

css linear-gradients

5
推荐指数
1
解决办法
5681
查看次数