Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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 禁止直接分配到多对多集合的前端。改为使用time.set()_Django - Fatal编程技术网

Django 禁止直接分配到多对多集合的前端。改为使用time.set()

Django 禁止直接分配到多对多集合的前端。改为使用time.set(),django,Django,我正在尝试用django all auth实现多个singup表单。对于第一个表单,它工作得很好,因为第一个表单不包含任何类型的多对多关系。在第二种形式的情况下,它包含许多多对多不动产船舶。我是django和allauth的新手,我不知道如何处理这个问题。 下面给出了一些代码片段。 models.py class JobSeekerProfile(models.Model): user = models.OneToOneField(User, verbose_name=_("User"

我正在尝试用django all auth实现多个singup表单。对于第一个表单,它工作得很好,因为第一个表单不包含任何类型的多对多关系。在第二种形式的情况下,它包含许多多对多不动产船舶。我是django和allauth的新手,我不知道如何处理这个问题。 下面给出了一些代码片段。

models.py

class JobSeekerProfile(models.Model):
    user = models.OneToOneField(User, verbose_name=_("User"), on_delete=models.CASCADE)
    full_name = models.CharField(max_length=255)
    religion = models.ForeignKey(Religion, on_delete=models.CASCADE)
    interested_area = models.ManyToManyField(ServiceArea)
    interested_time = models.ManyToManyField(WorkingShift)

forms.py

class JobSeekerSignupForm(SignupForm):

    full_name = forms.CharField(
..........
    )

    interested_area = forms.MultipleChoiceField(
        required=True,
        error_messages={'info': 'Interested Area is required'},
        label="Interested Area",
        choices=[[0, '']] + [[r.id, r.title] for r in ServiceArea.objects.all()],
        widget=forms.SelectMultiple(attrs={
            'id': "inputGroup1_17",
            'class': select_input_class,
            'style': "width: 100%;",
            'data-placeholder': "Interested Area ",
            'data-open-icon': "fa fa-caret-down",
            'data-close-icon': "fa fa-caret-up",
        }),
    )


........

    def save(self, request):
        user = super(JobSeekerSignupForm, self).save(request)
        user.is_job_seeker = True
        job_seeker = JobSeekerProfile(
            user=user,
            full_name=self.cleaned_data.get('full_name'),
            interested_area_set=self.cleaned_data.get('interested_area'),
            ........
            interested_time=self.cleaned_data.get('interested_time'),


        )
        user.save()
        job_seeker.save()
        return user
和视图.py

class JobSeekSignupView(SignupView):
    template_name = 'user/job-seeker-signup.html'
    form_class = JobSeekerSignupForm
    redirect_field_name = 'next'
    view_name = 'jobseekersignup'
    success_url = None

    def get_context_data(self, **kwargs):
        ret = super(JobSeekSignupView, self).get_context_data(**kwargs)
        ret.update(self.kwargs)
        return ret

不能直接将值(记录)分配给M2M字段。这是你的电话号码

与此相反:

interested_time=self.cleaned_data.get('interested_time')
首先保存求职者,然后使用
add()
,然后通过M2M添加记录:

job_seeker.save()
job_seeker.interested_time.add(cleaned_data.get('interested_time'))

/user/job seeker/signup/int()参数处的TypeError必须是字符串、类似对象的字节或数字,而不是“列表”请求方法:POST请求URL:cleaned_data中的内容。get('Interest_time')?物品清单?如果是,只需将添加第二行更改为
job\u seaker.interest\u time.add(*cleaned\u data.get('interest\u time'))