gpt4 book ai didi

django - 清理数据时附加到 ManyToMany 表单字段时出现问题

转载 作者:行者123 更新时间:2023-12-02 01:34:30 24 4
gpt4 key购买 nike

刚刚从 Django 1.00 迁移到 1.30,我在表单验证期间突然收到错误:

AttributeError: 'QuerySet' object has no attribute 'append'

代码如下。在清理用户在表单中指定的协调员列表时,我还想包括所有 super 用户。

问题似乎是 clean_data.get() 调用返回一个 QuerySet。我认为它返回一个代表字段类型的对象。正如我上面所说,这段代码曾经在 1.0 中运行,但也许那是一个意外。

有人可以告诉我在这种情况下cleaned_data.get 返回什么以及如何向其中添加其他值吗?

谢谢。

class Party(models.Model):
coordinators = models.ManyToManyField( 'PersonProfile', blank=True, related_name='event_coordinator_set', help_text='' )

class PartyForm(ModelForm):

class Meta:
model = Party

def __init__( self, *args, **kwargs ):
super( PartyForm, self ).__init__(*args, **kwargs)
self.fields['coordinators'].queryset = PersonProfile.objects.exclude( user__is_superuser=1 )

def clean_coordinators( self ):
coordinators = self.cleaned_data.get( 'coordinators', '' )
superuser_list = PersonProfile.objects.filter( user__is_superuser=1 )
for superuser in superuser_list:
coordinators.append( superuser )
return coordinators

最佳答案

尝试以下操作:

from django.db.models import Q

def clean_coordinators( self ):
coordinators = self.cleaned_data.get( 'coordinators', '' )
if coordinators:
return PersonProfile.objects.filter(
Q(pk__in=coordinators) | Q(user__is_superuser=1)
)
else:
return PersonProfile.objects.filter(user__is_superuser=1)

关于django - 清理数据时附加到 ManyToMany 表单字段时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5527525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com