如何在Django表单中为新用户设置站点权限

如何在Django表单中为新用户设置站点权限,django,mezzanine,Django,Mezzanine,我在Django/Mezzanine项目中有这样的课程: class SitePermission(models.Model): """ Permission relationship between a user and a site that's used instead of ``User.is_staff``, for admin and inline-editing access. """ user = models.OneToOneF

我在Django/Mezzanine项目中有这样的课程:

class SitePermission(models.Model):
    """
    Permission relationship between a user and a site that's
    used instead of ``User.is_staff``, for admin and inline-editing
    access.
    """

    user = models.OneToOneField(user_model_name, verbose_name=_("Author"),
        related_name="%(class)ss")
    sites = models.ManyToManyField("sites.Site", blank=True,
                                   verbose_name=_("Sites"))

    class Meta:
        verbose_name = _("Site permission")
        verbose_name_plural = _("Site permissions")
在管理中选择一个站点并按下保存按钮时。记录将访问具有权限的数据库

如何在前端执行以下操作:

def create_site(request):
    if request.method == "POST":
        form = CreateSite(request.POST)
        if form.is_valid():
            try:
                post = form.save(commit=False)
                post.save()
                return HttpResponseRedirect('/welcome/')
            except IntegrityError:
                form._errors["domain"] = ["Domain must be unique!"]
    else:
        form = CreateSite()
    return render(request, "includes/create_site.html", {'form': form})
class CreateSite(ModelForm):
    class Meta:
        model = Site
        fields = ['domain' , 'name']
  • 创建新站点+用户(以相同的形式)
  • 创建新站点(子域)作为用户名。就像是同一个输入表单
  • 将站点权限添加到新创建的用户
  • 添加站点标题
  • 在此之后添加更多用户名数据
  • 这是我当前处理此问题的视图:

    def create_site(request):
        if request.method == "POST":
            form = CreateSite(request.POST)
            if form.is_valid():
                try:
                    post = form.save(commit=False)
                    post.save()
                    return HttpResponseRedirect('/welcome/')
                except IntegrityError:
                    form._errors["domain"] = ["Domain must be unique!"]
        else:
            form = CreateSite()
        return render(request, "includes/create_site.html", {'form': form})
    
    class CreateSite(ModelForm):
        class Meta:
            model = Site
            fields = ['domain' , 'name']
    
    forms.py:

    def create_site(request):
        if request.method == "POST":
            form = CreateSite(request.POST)
            if form.is_valid():
                try:
                    post = form.save(commit=False)
                    post.save()
                    return HttpResponseRedirect('/welcome/')
                except IntegrityError:
                    form._errors["domain"] = ["Domain must be unique!"]
        else:
            form = CreateSite()
        return render(request, "includes/create_site.html", {'form': form})
    
    class CreateSite(ModelForm):
        class Meta:
            model = Site
            fields = ['domain' , 'name']