【问题标题】:Add m2m relation in Django rest framework在 Django rest 框架中添加 m2m 关系
【发布时间】:2019-09-17 09:37:26
【问题描述】:

我需要在Django rest框架中的两个对象之间添加多个m2m关系

  class Theme(models.Model):
        slug = models.CharField(primary_key=True, unique=True, db_index=True)
        menu = models.ManyToManyField(Menu, related_name='themes')


class Menu(models.Model):
    pass

序列化器

class MenuAdminSerializer(serializers.ModelSerializer):
    themes = serializers.SlugRelatedField(many=True,
                                          read_only=False,
                                          required=False,
                                          slug_field='slug',
                                          queryset=Theme.objects.all())

    class Meta:
        model = Menu
        fields = ('themes',)


    def create(self, validated_data):
        themes = validated_data.pop('themes')
        menu.themes.set(*themes)

我传递这样的主题 ["one", "another"] 但我得到的错误是 'Theme' object is not iterable

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    您添加多对多字段不合适。

     menu.themes.set(*themes)
    

    这应该改为

     menu.themes_set.add(*themes)
    

    相关example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多