class DisasterTypeListCreateView(ListCreateAPIView): model = DisasterType serializer_class = DisasterTypeSerializer queryset = DisasterType.objects() permission_classes = [ Or(build_permission_class('dms.can_manage_disasters'), IsGetRequest) ]
def test_create_disaster(self): attributes = {"name": "Flood", "description": "a lot of water everywhere"} DisasterType(**attributes).save() disasters = DisasterType.objects(name="Flood") disaster = disasters[0] self.assertEqual(1, disasters.count()) self.assertEqual(attributes['name'], disaster.name) self.assertEqual(attributes['description'], disaster.description)
def query_by_disaster_type(self, disaster_type, queryset=None): disaster_type = DisasterType.objects(id=disaster_type).first() disasters = Disaster.objects(name=disaster_type) return queryset.filter(disaster__in=disasters)
def validate_name(self, attrs, source): if len(DisasterType.objects(name=attrs[source])): raise rest_serializers.ValidationError( 'Disaster type must be unique') return attrs
def validate_name(self, attrs, source): if len(DisasterType.objects(name=attrs[source])): raise rest_serializers.ValidationError('Disaster type must be unique') return attrs