On Nov 25, 7:53 am, PRANAV HEGDE <[email protected]> wrote:
> Hi guys,
>
> I'm trying to create a login form using a model form,
>
> user model:
> class users(models.Model):
>     username = models.CharField(max_length=20, primary_key=True)
>     password = models.CharField(max_length=50)
>     usertype = models.CharField(max_length=20)
>     class Meta:
>         db_table = u'users'
>
> login form:
> class loginlorm(forms.ModelForm):
>     class Meta:
>         model = users
>         fields = ('username','password','usertype')
>         widgets = {
>                     'username':TextInput(),
>                     'password':PasswordInput(),
>                     'usertype':Select(choices=(("t1","type1"),
> ("t2","type2"))),
>                    }
>
> The form comes up as i wanted it to, but when i login it gives a
> validation error saying "user with this name already exists".
> I think its "form.is_valid()" checking "primary key" constraint,
> thinking i'm trying to write into the table. :(
> I cant remove the "primary key" constraint on "username" is there a
> way around this problem..

Why do you want a modelform though? The usual reason is to allow you
to add users or edit existing ones - since you don't supply an
existing user when instantiating the form, Django assumes you want to
create a new one, hence the error. But what are you gaining by using
the modelform here? It seems to me, nothing at all. Instead of
subclassing modelform, setting the model, and defining the widgets,
you might as well just use a normal form and define the fields
directly.
--
DR.

-- 
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