Beispiel #1
0
class CitySerializer(HyperlinkedModelSerializer):
    """
    HyperlinkedModelSerializer for City.
    """
    url = relations.HyperlinkedIdentityField(
        view_name='cities-light-api-city-detail')
    country = relations.HyperlinkedRelatedField(
        view_name='cities-light-api-country-detail')
    region = relations.HyperlinkedRelatedField(
        view_name='cities-light-api-region-detail')

    class Meta:
        model = City
Beispiel #2
0
class SubRegionSerializer(HyperlinkedModelSerializer):
    """
    HyperlinkedModelSerializer for SubRegion.
    """
    url = relations.HyperlinkedIdentityField(
        view_name='cities-light-api-city-detail')
    country = relations.HyperlinkedRelatedField(
        view_name='cities-light-api-country-detail', read_only=True)
    region = relations.HyperlinkedRelatedField(
        view_name='cities-light-api-region-detail', read_only=True)

    class Meta:
        model = SubRegion
        exclude = ('slug', )
Beispiel #3
0
class FormResponseSerializer(serializers.HyperlinkedModelSerializer):
    url = NestedHyperlinkedIdentityField(view_name='form-response-detail',
                                         lookup_field='id',
                                         parent_lookup_kwargs={
                                             'form_slug': 'form__slug',
                                         })
    form = relations.HyperlinkedRelatedField(view_name='form-detail',
                                             read_only=True,
                                             lookup_field='slug')

    def create(self, validated_data):
        form = Form.objects.get(slug=self.context['view'].kwargs['form_slug'])
        validated_data['form'] = form
        return super().create(validated_data)

    class Meta:
        fields = (
            'url',
            'form',
            'values',
            # 'created_by',
            'created_at',
            'updated_at',
        )
        read_only_fields = (
            'created_at',
            'updated_at',
        )
        model = FormResponse
Beispiel #4
0
    def to_representation(self, value):
        result = {}
        for link in self.hyperlink_data:
            label = link['label']
            kwargs = copy.copy(link)
            del kwargs['label']

            field = relations.HyperlinkedRelatedField(read_only=True, **kwargs)
            # fake the request into the context so the URL can be constructed
            field._context = {'request': self.context.get('request', None)}
            result[label] = field.to_representation(value)
        return result
Beispiel #5
0
class DraftSerializer(serializers.ModelSerializer):
    """Serializer for Drafts, appropriate for list views. No files metadata."""
    class Meta:
        model = Draft
        queryset = Draft.objects.all().select_related('bundle')
        fields = ('uuid', 'url', 'bundle', 'bundle_uuid', 'name')

    url = relations.HyperlinkedIdentityField(
        lookup_field='uuid',
        view_name='api:v1:draft-detail',
    )

    bundle = relations.HyperlinkedRelatedField(
        lookup_field='uuid',
        lookup_url_kwarg='bundle_uuid',
        view_name='api:v1:bundle-detail',
        read_only=True,
    )

    bundle_uuid = relations.SlugRelatedField(
        source='bundle',
        slug_field='uuid',
        queryset=Bundle.objects.all(),
    )