【发布时间】:2015-06-27 13:12:35
【问题描述】:
我正在尝试通过规范来解决涉及“many2many”关系的特定问题。 我已经尝试使用 inline_factory 但我无法解决问题。
我有这些表
class Person(models.Model):
id = models.AutoField(primary_key=True)
fullname = models.CharField(max_length=200)
nickname = models.CharField(max_length=45, blank=True)
class Meta:
db_table = 'people'
class Role(models.Model):
role = models.CharField(max_length=200)
class Meta:
verbose_name_plural = 'roles'
db_table = 'roles'
class Study(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=255)
description = models.CharField(max_length=1000)
members = models.ManyToManyField(Person, through='Studies2People')
class Meta:
db_table = 'studies'
class Studies2People(models.Model):
person = models.ForeignKey(Person)
role = models.ForeignKey(Role)
study = models.ForeignKey(Study)
class Meta:
verbose_name_plural = 'studies2people'
db_table = 'studies2people'
unique_together = (('person', 'role', 'study'),)
#forms.py
from .models import Study, Person, Role, Studies2People
class RegisterStudyForm(ModelForm):
class Meta:
model = Study
fields = '__all__'
#View.py
class StudyCreateView(CreateView):
template_name = 'managements/register_study.html'
model = Study
form_class = RegisterStudyForm
success_url = 'success/'
def get(self, request, *args, **kwargs):
self.object = None
form_class = self.get_form_class()
form = self.get_form(form_class)
return self.render_to_response(self.get_context_data(form=form))
上面的代码创建了一个类似的表单:
Study.Title
Study.description
List of People
我想创建一个表格来填写所有涉及 Studies2People 的字段 像这样:
Study.Title
Study.description
Combo(people.list)
Combo(Role.list)
也许我应该从 Studies2People 开始,但我不知道如何显示所涉及的“内联”表单。
提前致谢 C.
【问题讨论】: