AssignUser/GroupstoContainerPage
创始人
2024-09-20 18:30:11
0

Assign User/Groups to Container Page”翻译成中文为“将用户/组分配到容器页面”,可以使用以下代码实现该功能:

from django.contrib.auth.models import Group, User
from django.shortcuts import render
from django.views.generic.edit import FormView
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView

from .forms import AssignUsersToContainerPageForm
from .models import ContainerPage


class AssignUsersToContainerPageView(FormView, ListView, DetailView):
    template_name = 'assign_users_to_container_page.html'
    form_class = AssignUsersToContainerPageForm
    success_url = '/container_pages/'

    def get_context_data(self, **kwargs):
        container_page = ContainerPage.objects.get(pk=self.kwargs['pk'])
        users = User.objects.all()
        groups = Group.objects.all()
        context = super().get_context_data(**kwargs)
        context.update({
            'container_page': container_page,
            'users': users,
            'groups': groups,
        })
        return context

    def get_queryset(self):
        container_page = ContainerPage.objects.get(pk=self.kwargs['pk'])
        return container_page.users.all()

    def form_valid(self, form):
        container_page = ContainerPage.objects.get(pk=self.kwargs['pk'])
        users = User.objects.filter(pk__in=form.cleaned_data['users'])
        groups = Group.objects.filter(pk__in=form.cleaned_data['groups'])
        container_page.users.set(users)
        for group in groups:
            container_page.groups.add(group)
        return super().form_valid(form)

这段代码中,首先通过导入需要的模块和函数,引入了表单 AssignUsersToContainerPageForm 和模型 ContainerPage。然后创建视图类 AssignUsersToContainerPageView,集成了三个类:FormViewListViewDetailView,用于展示容器页面、显示用户列表和显示组列表。其中,FormView 用于处理表单提交,ListView 用于显示用户列表,DetailView 用于展示容器

相关内容

热门资讯

九分钟必备!八闽掌上辅助软件,... 九分钟必备!八闽掌上辅助软件,蜀渝牌乐汇挂机软件(真是存在有挂)-哔哩哔哩1、打开软件启动之后找到中...
五分钟必备!心悦填大坑辅助,红... 五分钟必备!心悦填大坑辅助,红茶馆app辅助(确实真的是有挂)-哔哩哔哩1、这是跨平台的心悦填大坑辅...
第二分钟教你!乐乐围棋入门辅助... 第二分钟教你!乐乐围棋入门辅助,一起宁德钓蟹辅助器(竟然存在有挂)-哔哩哔哩1、让任何用户在无需一起...
第九分钟关于!蜀山四川辅助脚本... 您好,蜀山四川辅助脚本多少钱这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】...
第五分钟揭露!大菠萝789辅助... 第五分钟揭露!大菠萝789辅助器下载,南昌微乐自建房辅助(好像是真的挂)-哔哩哔哩1、许多玩家不知道...
第5分钟解密!九酷众游软件,金... 第5分钟解密!九酷众游软件,金杯竞技辅助(都是存在有挂)-哔哩哔哩1、这是跨平台的九酷众游软件黑科技...
第八分钟推荐!传送屋激k如何开... 第八分钟推荐!传送屋激k如何开启透视,新二号辅助下载(果然存在有挂)-哔哩哔哩1、传送屋激k如何开启...
第九分钟详细!闲逸透视软件是免... 第九分钟详细!闲逸透视软件是免费的吗,抓住捣蛋鸡开挂(竟然是真的挂)-哔哩哔哩闲逸透视软件是免费的吗...
9分钟详细!一起宁德钓蟹脚本,... 9分钟详细!一起宁德钓蟹脚本,微信小程序微乐辅助免费(真是是有挂)-哔哩哔哩1、玩家可以在微信小程序...
三分钟推荐!微乐小程序辅助免费... 三分钟推荐!微乐小程序辅助免费,微信小程序微乐辅助免费(其实存在有挂)-哔哩哔哩1、微信小程序微乐辅...