Any pointers as to how to do this?
Thanks!
R.
class EntryForm(forms.ModelForm):
race_number = Entry._meta.get_field('race_number').formfield(required=False)
class Meta:
model = Entry
fields = ['race_number']
def the_view(request, athlete_id):
athlete = get_object_or_404(Athlete, id=athlete_id)
existing = {e.category_id: e for e in athlete.entry_set.all()}
entries = []
for category in Category.objects.order_by('particular'):
entries.append(existing.get(category.pk, Entry(athlete=athlete, category=category)))
if request.method = 'POST':
forms = [EntryForm(request.POST, instance=e, prefix=e.category.pk) for e in entries]
if all([f.is_valid() for f in forms]): # be sure to call is_valid() on every form
for entry in entries:
if entry.race_number:
entry.save()
if entry.pk and not entry.race_number:
entry.delete()
else:
forms = [EntryForm(instance=e, prefix=e.category.pk) for e in entries]
return render(request, 'template.html', {'athlete': athlete, 'forms': forms}){% for form in forms %}
Category: {{ form.instance.category }}
{{ form }}
{% endfor %}race_number = Entry._meta.get_field('race_number').formfield(required=False)
Wishing everyone a prosperous New Year.
R.