我目前正在尝试找出 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) 有没有办法让背景从左到右渐变,从深红色到浅红色(仅作为示例),同时从顶部 100% 不透明度到底部 0% 不透明度渐变?
它与对角渐变不同,它是 X 轴为颜色、Y 轴为透明度的渐变。
我一直在尝试看看我是否可以做到,但我找不到办法。
[编辑]
这是我所拥有的图片。它只是 bootstrap 的模板之一。
如您所见,我有一个从左(深红色)到右(浅红色)的渐变。
我还希望整个元素在底部淡入白色,以便该部分的截止不是突然的,而是渐进的。
正如您在这里所看到的,采用对角线解决方案时,左侧的边缘仍然非常锋利。我想要的是整个底部褪色为白色,即 Y 轴上的透明度渐变,而 X 轴上仍然有从左到右的颜色渐变。