我发现很难实现以下场景:
在我的应用程序中,用户创建了一个项目,现在他可以将以前创建的团队链接到该项目,或者创建一个新团队。你知道吗
一个团队可以是许多项目的一部分,但一个项目只与一个团队相关联。你知道吗
型号.py:
class Team(models.Model):
team_name = models.CharField(max_length=100, default = '')
team_hr_admin = models.ForeignKey(MyUser, blank=True, null=True)
def __str__(self):
return self.team_name
class TeamMember(models.Model):
user = models.ForeignKey(MyUser)
team = models.ForeignKey(Team)
def __str__(self):
return self.user.first_name
class Project(models.Model):
name = models.CharField(max_length=250)
team_id = models.ForeignKey(Team, blank=True, null=True)
project_hr_admin = models.ForeignKey(MyUser, blank=True, null=True)
def get_absolute_url(self):
return reverse('website:ProjectDetails', kwargs = {'pk' : self.pk})
def __str__(self):
return self.name
视图.py:
class ProjectCreate(CreateView):
model = Project
fields = ['name']
template_name = 'project_form.html'
def form_valid(self, form):
form.instance.project_hr_admin = self.request.user
return super(ProjectCreate, self).form_valid(form)
class ProjectDetailView(generic.DetailView):
model = Project
template_name = 'project_details.html'
class TeamCreate(CreateView):
model = Team
fields = ['team_name']
template_name = 'team_form.html'
def form_valid(self, form):
obj = form.save(commit=False)
obj2 = Project.team_id
obj2 = obj.team_id
obj2.save()
print("sucess")
我希望当用户创建一个团队时,如果成功地创建了这个团队。使用相应的team_id
自动添加到项目模型。你知道吗
任何帮助都将不胜感激。提前谢谢!你知道吗
好吧,你可以用你的用户id得到这个项目,它的团队id为空。 在
form_valid
视图的TeamCreate()
方法中:在这里,您只需要得到一个项目,它的用户是admin,团队id为空
但是警告:如果管理员创建两个没有团队的项目,请求
Project.objects.get(...)
将引发错误,因为它将返回多个对象。你知道吗因此,您必须确保它始终是一个项目,然后创建一个团队。你知道吗
希望有帮助。你知道吗
相关问题 更多 >
编程相关推荐