小编Qui*_*pl3的帖子

对 List 和 Retrieve Rest API 使用一种基于类的视图

我目前有两个不同的基于类的视图,用于详细说明特定对象和列出所有对象:

class StatusList(ListAPIView):
    permission_classes = (IsAuthenticated,)
    serializer_class = serializers.StatusSerializer

    def get_queryset(self):
        queryset = helperfunctions.getObjects(self.request.user, models.Status)
        return queryset


class StatusDetail(RetrieveAPIView):
    permission_classes = (IsAuthenticated,)
    serializer_class = serializers.StatusSerializer

    def get_queryset(self):
        queryset = helperfunctions.getObjects(self.request.user, models.Status)
        return queryset
Run Code Online (Sandbox Code Playgroud)

请注意,helperfunctions.getObjects() 只是返回与用户共享同一设施的对象,以便他们无法看到不应看到的状态。

我想知道的是是否有一个选项可以为 StatusDetail 和 StatusList 只使用一个基于类的视图,它会自动知道当它在 get 请求中获得 pk 时,它会返回适当的对象,而当没有时,它应该返回整个对象列表。

谢谢你的帮助 :)

python django django-rest-framework

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

Django CreateView - 仅显示外键字段中的特定对象

我有一个CreateView视图,其中包含一堆需要用户在创建新联系人时填写的字段。现在,我希望用户能够仅从他们创建的类别中查看和选择。这是类别的模型:

class Category(models.Model):
    class Meta:
        verbose_name = _('category')
        verbose_name_plural = _('categories')

    name = models.CharField(max_length=100, unique=True)
    profile = models.ForeignKey(Profile, on_delete=models.CASCADE)

    def __unicode__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

这是视图:

class ContactCreate(LoginRequiredMixin, generic.edit.CreateView):
    model = models.Contact
    success_url = reverse_lazy('site:contacts')
    fields = ['firstname', 'lastname', 'phone1', 'phone2', 'email', 'city', 'category']
    template_name = 'site/contacts.html'
    context_object_name = 'all_contacts'
Run Code Online (Sandbox Code Playgroud)

我需要用户看到的是一个选择,它只包含与它们相关联的适当配置文件外键的类别。

我很乐意在这方面得到一些帮助。谢谢!

python django django-class-based-views

4
推荐指数
1
解决办法
1284
查看次数

如何使用Powershell获取Hyper-V虚拟机的IP地址?

我尝试使用以下代码获取虚拟机的 IP 地址:

$vm.NetworkAdapters | Select-Object IPAddresses

输出是:

IPAddresses
-----------
{}
{}
{}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我无法取回虚拟机的 IP 地址...它已启动并正在运行并且具有网络连接。

powershell hyper-v

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