「ブランド」オブジェクト「会社」の外部キーである、彼らは多対多の関係であり、ブランドのオブジェクトは「company_Group」フィールドに存在する多対多モデルのジャンゴのRestfulアピ
次のようにモデルがあります:
class Brand(models.Model):
Company_Group = models.ManyToManyField(Company)
Brand_Group = models.CharField(u'Brand Group',max_length=255, default="")
Pref_Brand_Name_Flg = models.CharField(u'Preferred Name Flag',max_length=255, default="")
Pref_Brand_Name = models.CharField(u'Preferred Name',max_length=255, default="")
PrimaryContact = models.ForeignKey(UserRole, null=True, blank=True)
class Company(models.Model):
Pref_Company_Name_Flg = models.CharField(u'Preferred Name Flag',max_length=255, default="")
Pref_Company_Name = models.CharField(u'Preferred Name',max_length=255, default="")
Company_Type = models.CharField(u'Company Type',max_length=255, default="")
シリアライザ
class BrandSerializer(serializers.ModelSerializer):
class Meta:
model = Brand
fields = '__all__'
シリアライザ次のように、data_export_setting.Company_form_stand
が
class BrandViewSet(viewsets.ModelViewSet):
queryset = Brand.objects.all()
serializer_class = BrandSerializer
model = Brand
def get_serializer(self, *args, **kwargs):
if 'data' in kwargs:
data = kwargs['data']
if isinstance(data, list):
kwargs['many'] = True
return super(BrandViewSet, self).get_serializer(*args, **kwargs)
class CompanyViewSet(viewsets.ModelViewSet):
queryset = Company.objects.all()
serializer_class = CompanySerializer
を次のように
class CompanySerializer(serializers.HyperlinkedModelSerializer):
Brand = BrandSerializer(source='brand', read_only=True)
class Meta:
model = Company
Company_form_stand=['id', 'Brand', 'Company_Type','Company_Name','company_Name_SC']
fields = data_export_setting.Company_form_stand
depth = 2
def create(self, validated_data):
return Company.objects.create(**validated_data)
def update(self, instance, validated_data):
instance.__dict__.update(**validated_data)
instance.save()
return instance
ビューセットがあり、私は会社がブランドのオブジェクトとオブジェクトを表示したい
は、助けを感謝します。
会社には「ブランド」フィールドがないため、そのデータがどこから来ると予想されているのかわかりません。 –
会社とブランドの関係がManytoManyなので、会社のブランドオブジェクトを見せたい、モデルを変更しないで表示する方法はありますか?モデルにはないフィールドを追加するだけのように、ありがとう〜 –
しかし、 "ブランドオブジェクト"のようなものはありません。各企業に関連する*多くの*ブランドオブジェクトがあります。 –