Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:通过relationshiop使用表单和多个关系_Django_Forms_Model - Fatal编程技术网

Django:通过relationshiop使用表单和多个关系

Django:通过relationshiop使用表单和多个关系,django,forms,model,Django,Forms,Model,我试图通过规范来解决一个涉及“多人”关系的具体问题。 我已经尝试使用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)

我试图通过规范来解决一个涉及“多人”关系的具体问题。 我已经尝试使用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
我想创建一个表格来填写所有涉及学习2人的字段,如下所示:

Study.Title
Study.description
Combo(people.list)
Combo(Role.list)
也许我应该从Studies2People开始,但我不知道如何显示所涉及的“内联”表单

提前谢谢
C.

在等待能够通过一些例子解释m2m与(模型和视图)之间关系的人时,我以不同的方式解决了我的问题

我创造了三种形式。 1表格范本(研究) 2表单(带有ModelChoiceField(queryset=TableX.objects.all()的表单)

创建了一个类视图来管理get和post操作。(还有验证表单) 在post过程中,我使用“事务”来避免“伪造”数据

我希望有人能举一个m2m关系复杂的例子

问候

辛齐亚