我想做一些看起来像我在这张照片中看到的东西:
基本上,我有两个实体:Project
和Feature
。
每个项目都与某些功能有多对多的关系。
当我创建一个项目时,我希望能够添加任意数量的功能,并且我想一次性完成(只需一个表单)。
那么,这样做的正确方法是什么?
答案 0 :(得分:1)
Inline model formsets就是你想要的。
答案 1 :(得分:0)
将此视为您的models.py
class Project(models.Model):
project = models.Charfield(max_length=100)
class Feature(models.Model):
name = models.Charfield(max_length=100)
project = models.ManyToManyField(Project, blank = True)
forms.py
:
class ProjectForm(forms.ModelForm):
class Meta:
model = Project
views.py
的粗略代码段:
def project(request):
ModelForm = inlineformset_factory(Project, Feature)
if request.method == 'POST':
form = ProjectForm(request.POST)
project = Project.objects.get(pk=request.pk)
formset = ModelForm(instance=project)
if form.is_valid():
form.save()
return HttpResponseRedirect('')
else:
form = ProjectForm()
formset = ModelForm()
return render_to_response('project.html', {'form':
form, 'formset': formset})