On Thu, Dec 4, 2008 at 2:12 AM, cyberjack <[EMAIL PROTECTED]> wrote:

>
> Hi,
>
>  I haven't been able to solve this problem, but have made some
> progress:
>
> It's definitely *not* bug 9039. I've download the tests from that
> ticket and confirmed the fix was included in 1.0.2 final.
>
> The problem is related to using querysets with formset_factory.  Ie,
> if I include a queryset filter, then I see this error. If I don't
> include a queryset, and thus edit all status reports, I don't see the
> error.
>
> Lastly, I've simplified my code producing the problem:
>
> my model:
>
> class StatusReport(models.Model):
>   vehicle       = models.IntegerField()
>   report_date   = models.DateField()
>   status        = models.CharField(max_length=10)
>
> and my view:
>
> def detail(request, vehicle_id):
>    limited_reports = StatusReport.objects.filter(vehicle=vehicle_id)
>
>    StatusFormSet = modelformset_factory(StatusReport, extra=0)
>    if request.method == 'POST':
>        formset = StatusFormSet(request.POST)
>         if formset.is_valid():
>            formset.save()
>     else:
>        # with error
>        #formset = StatusFormSet(queryset=limited_reports)
>        # without error
>        formset = StatusFormSet()
>    return render_to_response('manage_articles.html',
>                              {'formset': formset,
>                               'vehicle_id': vehicle_id})
>
> Is this a bug in Django? If so, what should I include in the bug
> report?
>

I think the bug is that you need to pass the queryset parameter when you are
dealing with a POST (if you've specified it on the GET) so that the posted
data can be matched up to the existing model instances.  Otherwise I think
it will be trying to validate and save as all new instances, and I think the
error message is saying you wind up with duplicate primary key ids when you
try that (though I will say that error message might could use some
improvement).

Karen

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" 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-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to