我正在尝试在 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)