Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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模型形式更新don';行不通_Django_Transactions_Django Forms - Fatal编程技术网

Django模型形式更新don';行不通

Django模型形式更新don';行不通,django,transactions,django-forms,Django,Transactions,Django Forms,嗨,我对模型表单有问题。当我尝试使用事务从两个类中更新对象时,什么也没有发生 我的班级: class TeamForm(forms.ModelForm): employers = forms.ModelMultipleChoiceField(queryset=Employer.objects.all(), widget=forms.CheckboxSelectMultiple) class Meta: model = Team fields =

嗨,我对模型表单有问题。当我尝试使用事务从两个类中更新对象时,什么也没有发生

我的班级:

class TeamForm(forms.ModelForm):
    employers = forms.ModelMultipleChoiceField(queryset=Employer.objects.all(), widget=forms.CheckboxSelectMultiple)

    class Meta:
        model = Team
        fields = '__all__'
我的模型课:

class Team(models.Model):
    name = models.CharField(default='Team', max_length=100, unique=True)

    def __str__(self):
        return self.name


class Employer(models.Model):
    user = models.OneToOneField(User, on_delete=models.SET_NULL, null=True)
    team = models.ForeignKey(Team, on_delete=models.SET_NULL, null=True)
    team_leader = models.BooleanField(default=False)
    project_menager = models.BooleanField(default=False)
    # project_id = models.ForeignKey(Project, on_delete=models.SET_NULL, null=True)

    hourly_rate = models.IntegerField(default=0)
    working_time = models.FloatField(default=0.0)

    def __str__(self):
        return self.user.first_name + ' ' + self.user.last_name
最后,我的观点是:

def TeamUpdateView(request, pk):
    if request.method == 'POST':
        team_form = TeamForm(request.POST)
        if team_form.is_valid():
            with transaction.atomic():
                team = Team.objects.filter(pk=pk).update(name=str(team_form['name'].value()))
                for e in team_form['employers'].value():
                    Employer.objects.filter(pk=e).update(team=team)
            print(team_form.errors)
            return redirect('resources:ResourcesListView')
    else:
        team = get_object_or_404(Team, pk=pk)
        team_form = TeamForm(initial={'name': team.name})  # milestone_form = MilestoneForm()
        context = {'team_form': team_form, 'form_pk': pk}  # , 'milestone
        return render(request, 'resources/resources_edit_modal.html', context)
当我打印表单错误时,我可以看到如下情况:

<ul class="errorlist"><li>name<ul class="errorlist"><li>Team with this Name already exists.</li></ul></li></ul>
  • 名称
    • 具有此名称的团队已存在。

看起来您有一些格式问题-我猜这只是在发布SO?时出现的,只有在我尝试发送post请求时才会出现