#9758: modelformset_factory forms generate error when using queryset
-----------------------------------+----------------------------------------
Reporter: [EMAIL PROTECTED] | Owner: nobody
Status: new | Milestone:
Component: Forms | Version: 1.0
Keywords: | Stage: Unreviewed
Has_patch: 0 |
-----------------------------------+----------------------------------------
What I'm trying to do:
* I'm building a formset with exactly seven entries, one for each day of
the last week.
* I use modelformset_factory to create my form and specify a queryset to
filter the particular item and date range.
What I see:
* The page displays the seven entries as expected. The first seven days
are created fine and can be edited at any point.
* If I try to edit additional entries, I see the following error:
(Hidden field id) Status report with this None already exists.
* The kicker is that if I remove the queryset limitation, this error
goes away. Ie, my formset includes all entries, not just the seven I want.
* Without the queryset, I can add / edit as many items and weeks as I
want.
Here's a minimal example, which assumes you already have data stored in
StatusReport.
{{{
class StatusReport(models.Model):
item = models.IntegerField()
report_date = models.DateField()
status = models.CharField(max_length=10)
}}}
view:
{{{
def detail(request, item_id):
# removed sanity checks, entry creation, etc
StatusFormSet = modelformset_factory(StatusReport, extra=0)
if request.method == 'POST':
formset = StatusFormSet(request.POST)
if formset.is_valid():
formset.save()
else:
### with error
#limited_reports = StatusReport.objects.filter(item=item_id)
#formset = StatusFormSet(queryset=limited_reports)
### without error
formset = StatusFormSet()
return render_to_response('manage_items.html',{'formset': formset})
}}}
and generic template
{{{
<form method="POST" action="">
<table>
{{ formset }}
</table>
<input type = "submit" value = "Submit">
</form>
}}}
--
Ticket URL: <http://code.djangoproject.com/ticket/9758>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---