Thursday, March 28, 2013

Re: Integrity Error: column username is not unique

If the user is marked as deleted and we want to do soft delete.What can we do to have the username available again for use.

Can we just mask the deleted usernames with some random string so that the actual username can be used?

On Sunday, June 24, 2012 10:36:02 AM UTC-4, Dhivya wrote:
Hi,
username field in django.contrib.auth.User model  is unique. 
Probably, the username you are trying to save already exists. 
In your view, you might want to check,
try:
    username = User.objects.get(username=form.cleaned_data['username'])
except ObjectDoesNotExist:
      #create user new object here

-Dhivya
On Sunday, June 24, 2012 9:36:48 AM UTC-4, Nikhil Verma wrote:

Hi

I got this error when i was making a post after filling the details from the user.

Can somebody throw a light in this where i am going wrong.

models.py

class UserProfile(models.Model):
    user = models.ForeignKey(User, blank=True, null=True, unique=True)
    first_name = models.CharField(max_length=30, blank=True)
    last_name = models.CharField(max_length=30, blank=True)
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, blank=True)
    birth_date = models.DateField(auto_now_add=True)
    street = models.CharField(max_length=75, blank=True)
    state = models.CharField(max_length=30, blank=True)
    zip_code = models.IntegerField(max_length=7, blank=True, null=True)
    country = models.CharField(max_length=30, blank=True)
    mobile = models.CharField(max_length=15, blank=True)
    home_phone = models.CharField(max_length=15, blank=True)
    primary_email = models.EmailField(max_length=60, blank=True)
    institution_name = models.CharField(max_length=100,blank=True,null=True)
    institution_website = models.CharField(max_length=100,blank=True,null=True)


forms.py

class UserProfileForm(forms.Form):
   
    username = forms.CharField(label='Username', max_length=20)
    first_name = forms.CharField(label="First Name", max_length=40, required=True)
    last_name = forms.CharField(label="Last Name", max_length=40, required=True)
    gender = forms.CharField(max_length=1, widget=Select(choices=GENDER_CHOICES), required=True)
    date_of_birth = CustomDateField(label='Date of Birth', required=False)
    telephone = forms.CharField(label='Mobile Phone', max_length=40, required=False)
    institution_name = forms.CharField(label='Institute Name', max_length=80, required=False)
    street = forms.CharField(label='Street', max_length=100, required=False)
    zip_code = forms.CharField(label='Zip Code', max_length=40, required=False)
    state = forms.CharField(label='State', max_length=80, required=False)
    country = forms.CharField(label='Country', max_length=80, required=False)
    institue_name = forms.CharField(label='Institute Name', max_length=80, required=False)
    institue_website = forms.URLField(label='Institute Website', max_length=80, required=False)


views.py
def createprofile(request):
    """
    Creating Profile
    """
   
    if request.method == "POST":
        form = UserProfileForm(request.POST)
        if form.is_valid():
            user = User(
            username = form.cleaned_data['username'],
            first_name = form.cleaned_data['first_name'],
            last_name = form.cleaned_data['last_name'],
            )
            user.save()
            userprofile_obj = UserProfile(
                user = user.username,                                     
                first_name = user.first_name,
                last_name = user.last_name,
                gender = form.cleaned_data['gender'],
                birth_date = form.cleaned_data['date_of_birth'],
                mobile = form.cleaned_data['telephone'],
                institution_name = form.cleaned_data['institution_name'],
                street = form.cleaned_data['street'],
                zip_code = form.cleaned_data['zip_code'],
                state = form.cleaned_data['state'],
                country = form.cleaned_data['country'],
            )
            userprofile_obj.save()


Any help how can i solve this problem ?


--
Regards
Nikhil Verma
+91-958-273-3156

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments:

Post a Comment