Opened 15 years ago

Closed 15 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: no UI/UX: no

Description (last modified by Malcolm Tredinnick)

#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 by Malcolm Tredinnick, 15 years ago

Description: modified (diff)
Resolution: invalid
Status: newclosed

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