Python 无法在多部分/表单数据中创建具有多对多关系和请求数据的对象
我有一个与模型团队有多对多关系的用户模型:Python 无法在多部分/表单数据中创建具有多对多关系和请求数据的对象,python,django,django-models,django-rest-framework,django-views,Python,Django,Django Models,Django Rest Framework,Django Views,我有一个与模型团队有多对多关系的用户模型: class User(AbstractBaseUser): """ model to store user infomation """ ..... team = models.ManyToManyField( "team.Team", blank=True, related_name="team_member") ..... 以下是UserSerializer的一个片段: class UserSerializer(seria
class User(AbstractBaseUser):
"""
model to store user infomation
"""
.....
team = models.ManyToManyField(
"team.Team", blank=True,
related_name="team_member")
.....
以下是UserSerializer的一个片段:
class UserSerializer(serializers.ModelSerializer):
"""
User serializer for user ModelViewSet
"""
.....
team = serializers.PrimaryKeyRelatedField(
queryset=Team.objects.all(), many=True,
required=False,
allow_null=True,
)
.....
class Meta:
model = User
exclude = ()
以下是相同的视图:
class UserViewSet(viewsets.ModelViewSet):
""" User model view """
.....
def create(self, request, *args, **kwargs):
request.data._mutable = True
team = request.data.get('team')
team = json.loads(team)
request.data['team'] = team
serializer = self.get_serializer_class()
serializer = serializer(data=request.data)
if serializer.is_valid(raise_exception=True):
self.perform_create(serializer)
.....
以下是使用邮递员表单数据的请求正文的附加屏幕截图:
任何人都可以告诉我我做错了什么。请尝试使用getlist()方法而不是get()方法,如下所示:
team = request.data.getlist('team[]')
getlist()仍然没有帮助,因为在我获得['[1,2,3]']之后,我将不得不再次使用索引访问此文件,以进一步解析为JSON。您不能以JSON格式传递数据而不是表单数据吗?不,我的模型也有一个ImageField。然后对于表单数据,我认为此方法只适用于!尽管如此,我仍然面临着和之前一样的问题。