在基于类的视图中填充表单的ManyToMany字段-Django

我正在尝试在 Project User 模型之间建立 ManyToMany 关系。我为 Project 模型创建了一个 users_list 字段,以保存可以访问特定项目的用户列表。

在创建项目时,我用当前登录的用户成功填充了字段用户。 对于users_list字段,最初,我尝试将当前登录的用户添加到users_list中(其他用途将在以后邀请时添加)。但是,我不能。我收到以下错误:

ValueError: invalid literal for int() with base 10: ''

models.py

class Project(models.Model):
    title = models.CharField(max_length=1000)
    user = models.ForeignKey(settings.AUTH_USER_MODEL,default="",on_delete=models.CASCADE)
    users_list = models.ManyToManyField(User,related_name='users_list') 

    def __str__(self):
        return self.title + " - " + str(self.user)

    def get_absolute_url(self):
        return reverse("planner:projects_listed")

views.py

class ProjectCreateView(CreateView):
    model = Project
    fields = ["title"]
    template_name = "planner/projects_listed.html"

    def get_success_url(self):
        return reverse("planner:projects_listed")

    def get_context_data(self,**kwargs):
        kwargs["project_list"] = self.model.objects.filter(user=self.request.user)
        return super(ProjectCreateView,self).get_context_data(**kwargs)

    def form_valid(self,form):
        form.instance.users_list.add(self.request.user)
        form.instance.user = self.request.user
        return super(ProjectCreateView,self).form_valid(form)
wr5279 回答:在基于类的视图中填充表单的ManyToMany字段-Django

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3085893.html

大家都在问