def test_get_nested_relation_kwargs_default(self):
     relation_info = RelationInfo(model_field=Column(
         'birthday_place', Integer),
                                  related_model=self.FakeUserModel,
                                  to_many=False,
                                  to_field=Column('address', Integer),
                                  has_through_model=False)
     self.assertEqual(get_nested_relation_kwargs(relation_info),
                      {'read_only': True})
Esempio n. 2
0
 def test_get_nested_relation_kwargs_for_list_field(self):
     relation_info = RelationInfo(
         model_field=Column('addresses', Integer),
         related_model=self.FakeUserModel,
         to_many=True,
         to_field=Column('id', ForeignKey('FakeAddressModel.id')),
         has_through_model=True
     )
     self.assertEqual(
         get_nested_relation_kwargs(relation_info),
         {'read_only': True, 'many': True}
     )
Esempio n. 3
0
 def test_get_nested_relation_kwargs_for_list_field(self):
     relation_info = RelationInfo(
         model_field=Column('addresses', Integer),
         related_model=self.FakeUserModel,
         to_many=True,
         to_field=Column('id', ForeignKey('FakeAddressModel.id')),
         has_through_model=True
     )
     self.assertEqual(
         get_nested_relation_kwargs(relation_info),
         {'read_only': True, 'many': True}
     )
Esempio n. 4
0
 def test_get_nested_relation_kwargs_default(self):
     relation_info = RelationInfo(
         model_field=Column('birthday_place', Integer),
         related_model=self.FakeUserModel,
         to_many=False,
         to_field=Column('address', Integer),
         has_through_model=False
     )
     self.assertEqual(
         get_nested_relation_kwargs(relation_info),
         {'read_only': True}
     )
Esempio n. 5
0
    def build_nested_field(self, field_name, relation_info, nested_depth):
        """
        Create nested fields for forward and reverse relationships.
        """
        class NestedSerializer(HyperlinkedModelSerializer):
            class Meta:
                model = relation_info.related_model
                depth = nested_depth - 1

        field_class = NestedSerializer
        field_kwargs = get_nested_relation_kwargs(relation_info)

        return field_class, field_kwargs