后,我发现它难以实现以下情形:编辑另一个模型创建实例
在我的应用程序,用户创建了一个项目,现在这个项目,他可以链接之前的团队,他创造或建立一个新的团队。
一个团队可以成为许多项目的一部分,但一个项目仅与一个团队相关联。
models.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
views.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的项目模型。
任何帮助,将不胜感激。提前致谢!
您是否尝试过使用模型继承? –
当一个团队被创建时,你想创建一个相应的项目?自动? – Bestasttung
否..当创建一个项目时,用户被要求提供一个名字,team_id是空的。然后用户创建一个团队..我希望当团队创建team_id从空白更改为刚刚创建的团队的ID – Ben2pop