Opened 6 years ago

Closed 6 years ago

#10544 closed (invalid)

Saving ModelForm to update exisitng record generates No {model} matches the given query.

Reported by: mcwong644 Owned by: nobody
Component: Uncategorized Version: 1.0
Severity: Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:

Description (last modified by mtredinnick)

#models.py

class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()

    def __unicode__(self):
        return self.name

    class Meta:
        ordering = ["name"]

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField(blank=True, verbose_name='e-mail')
    objects = models.Manager()
    sel_objects=AuthorManager()
    
    def __unicode__(self):
        return self.first_name+' '+ self.last_name

class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField(blank=True, null=True)
    num_pages = models.IntegerField(blank=True, null=True)
    objects = models.Manager()
    bookobjects = BookManager()
    wong = WongAuthor()

class BookForm(ModelForm):
    class Meta:
        model = Book

#view.py
def authorcontactupd(request,id):
    if request.method == 'POST':
        a=Author.objects.get(pk=int(id))
        form = AuthorForm(request.POST, instance=a)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/contact/created')
    else:
        a=Author.objects.get(pk=int(id))
        form = AuthorForm(instance=a)
    return render_to_response('author_form.html', {'form': form})

Produces this error

Page not found (404)
Request Method: 	POST
Request URL: 	http://127.0.0.1:8000/books/bookupd/

No Publisher matches the given query.

You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

Change History (1)

comment:1 Changed 6 years ago by mtredinnick

  • Description modified (diff)
  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Resolution set to invalid
  • Status changed from new to closed

This looks like a problem in your code, rather than Django. Please post some details to the mailing list to get help with this.

I'll note that the error is reporting a problem about the Publisher model, which is not going to be used by AuthorForm at all. So you should start out by checking you are debugging the right problem.

(fixed description)

Note: See TracTickets for help on using tickets.
Back to Top