mpe and jk and sfr found that the OzLabs server was melting due
to some queries downloading every patch.
Turns out if you 404 the patch detail view in the API, d-r-f attempts
to render a listbox with every single patch to fill in the 'related'
field. The bundle API also has a similar field.
Replace the multiple selection box with a text field. You can still
(AIUI) populate the relevant patch IDs manually.
This is the recommended approach per
https://www.django-rest-framework.org/topics/browsable-api/#handling-choicefield-with-large-numbers-of-items
Reported-by: Jeremy Kerr <jk@ozlabs.org>
Reported-by: Michael Ellerman <mpe@ellerman.id.au>
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Tested-by: Jeremy Kerr <jk@ozlabs.org>
Server-no-longer-on-fire-by: Jeremy Kerr <jk@ozlabs.org>
Reviewed-by: Stephen Finucane <stephen@that.guru>
Signed-off-by: Daniel Axtens <dja@axtens.net>
project = ProjectSerializer(read_only=True)
mbox = SerializerMethodField()
owner = UserSerializer(read_only=True)
- patches = PatchSerializer(many=True, required=True)
+ patches = PatchSerializer(many=True, required=True,
+ style={'base_template': 'input.html'})
def get_web_url(self, instance):
request = self.context.get('request')
class PatchRelationSerializer(BaseHyperlinkedModelSerializer):
"""Hide the PatchRelation model, just show the list"""
- patches = PatchSerializer(many=True)
+ patches = PatchSerializer(many=True,
+ style={'base_template': 'input.html'})
def to_internal_value(self, data):
if not isinstance(data, type([])):