id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 9758,modelformset_factory forms generate error when using queryset,cyberjack17@…,nobody,"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 {{{
{{ formset }}
}}}",,closed,Forms,1.0,,invalid,,Carl Meyer,Accepted,0,0,0,0,0,0