Fix HackathonForm repositories queryset validation for new hackathons #4855
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
test_form_creates_new_repositoriestest was failing because the form's repositories field had an empty queryset when creating new hackathons, preventing valid repository selections from passing validation.Root Cause
In
HackathonForm.__init__, the repositories queryset was unconditionally set toRepo.objects.none()for new instances:Django validates form choices against the field's queryset before calling
clean_repositories(), so the form would fail validation with "Select a valid choice. X is not one of the available choices" even when selecting valid repositories from the chosen organization.Changes
Updated
__init__to populate the repositories queryset from the organization in the form data:This allows existing repositories from the selected organization to be validated and selected when creating new hackathons.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.