Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 134159
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T06:33:48+00:00 2026-05-11T06:33:48+00:00

I have a simple model that is defined as: class Article(models.Model): slug = models.SlugField(max_length=50,

  • 0

I have a simple model that is defined as:

class Article(models.Model):     slug  = models.SlugField(max_length=50,  unique=True)     title = models.CharField(max_length=100, unique=False) 

and the form:

class ArticleForm(ModelForm):     class Meta:        model = Article 

The validation here fails when I try to update an existing row:

 if request.method == 'POST':      form = ArticleForm(request.POST)       if form.is_valid(): # POOF          form.save() 

Creating a new entry is fine, however, when I try to update any of these fields, the validation no longer passes.

The ‘errors’ property had nothing, but I dropped into the debugger and deep within the Django guts I saw this:

slug: ‘Article with this None already exists’

So it looks like is_valid() fails on a unique value check, but all I want to do is update the row.

I can’t just do:

form.save(force_update=True) 

… because the form will fail on validation.

This looks like something very simple, but I just can’t figure it out.

I am running Django 1.0.2

What croaks is BaseModelForm.validate_unique() which is called on form initialization.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T06:33:48+00:00Added an answer on May 11, 2026 at 6:33 am

    I don’t think you are actually updating an existing article, but instead creating a new one, presumably with more or less the same content, especially the slug, and thus you will get an error. It is a bit strange that you don’t get better error reporting, but also I do not know what the rest of your view looks like.

    What if you where to try something along these lines (I have included a bit more of a possible view function, change it to fit your needs); I haven’t actually tested my code, so I am sure I’ve made at least one mistake, but you should at least get the general idea:

    def article_update(request, id):    article = get_objects_or_404(Article, pk=id)     if request.method == 'POST':       form = ArticleForm(request.POST, instance=article)        if form.is_valid():          form.save()           return HttpResponseRedirect(to-some-suitable-url)     else:       form = ArticleForm(instance=article)     return render_to_response('article_update.html', { 'form': form }) 

    The thing is, as taurean noted, you should instantiate your model form with the object you wish to update, otherwise you will get a new one.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 101k
  • Answers 101k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Matt Berseth has an article in which he subclasses GridView… May 11, 2026 at 8:07 pm
  • Editorial Team
    Editorial Team added an answer Got it myself. Take note of the double from at… May 11, 2026 at 8:07 pm
  • Editorial Team
    Editorial Team added an answer hey this option is given in newer version of magento… May 11, 2026 at 8:07 pm

Related Questions

I am trying to use Python's ctypes library to access some methods in the
We currently have developed an application using WCF. Our clients make connections to different
I have a table Parent and a table Child. Child contains a foreign-key to
I have a WPF application in VS 2008 with some web service references. For

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.