I get a strange error and I can't find the solution. The view is used to 
create data entries for a user but with an option to go back and edit hence 
the singular view to deal with an update...

The code works with only one form being pulled into the view but not with 
several, then it gives a nonsensical error. 

This is all in one app with its own set of urls.py

I have entered in the data raw for now in the form field rendered so eg 
interests : [1,2,3,4,5] in those fields
This worked as its should with no errors or abnormalities (data was updated 
in field)  but when i added skills through incremental development it shows 
this error:

 missing "]" in array dimensions
    LINE 1: ...akeProfile_skills" SET "user_id" = 11, "skills" = 
 '[0,1,2,3,..

I am using :
postgres1.9
Python3.4
Django 1.8.7

Code:

view.py 
    
    @login_required
    def step2(request):
    
    title =" Step 2 of 4 "
    # if request.method.upper() == 'POST':
    #     print('hello free stackoverflow points')

    #user_answer = UserAnswer.objects.get(user=request.user, question 
=instance)
    #profile, created = Profile.objects.get_or_create(user=request.user)
    form2p0 = step2p0Form()
    form2p1 = step2p1Form()
    form2p2 = step2p2Form()


    context ={
        "title":title,
        "form2p0":form2p0,
        "form2p1":form2p1,
        "form2p2":form2p2,

    }
    #skills, created = Skills.objects.get_or_create(user=request.user)
    if request.method.upper() == 'POST':

        interests, created = 
Interests.objects.get_or_create(user=request.user)
        skills, created = Skills.objects.get_or_create(user=request.user)
        languages, created = 
Languages.objects.get_or_create(user=request.user)

        form2p0 = step2p0Form(request.POST or None, instance= interests)
        form2p1 = step2p1Form(request.POST or None, instance= skills)
        form2p2 = step2p2Form(request.POST or None, instance= languages)

        context ={
            "title":title,
            "form2p0":form2p0,
            "form2p1":form2p1,
            "form2p2":form2p2,

        }

        if  form2p0.is_valid() and form2p1.is_valid() and 
form2p2.is_valid():

            instance2p0 =form2p0.save(commit=False)
            instance2p1 =form2p1.save(commit=False)
            instance2p2 =form2p2.save(commit=False)

            interests = form2p0.cleaned_data.get('interests')
            instance2p0.user = request.user
            instance2p0.interest = interests

            skills= form2p1.cleaned_data.get('skills')
            instance2p1.user = request.user
            instance2p1.skills = skills

            languages =  form2p2.cleaned_data.get('languages')
            instance2p2.languages = languages

            instance2p0.save()
            instance2p1.save()
            instance2p2.save()


            return HttpResponseRedirect(reverse('makeProfile:step3'))

    return render(request, "profile/step2.html", context)


form.py 

    class step2p0Form(forms.ModelForm):
        class Meta:
           model =Interests
           fields = ['interests']

        interests = forms.CharField(required = True)

    class step2p1Form(forms.ModelForm):
        class Meta:
            model =Skills
            fields = ['skills']

        skills = forms.CharField(required = True)

    class step2p2Form(forms.ModelForm):
        class Meta:
            model = Languages
            fields =['languages']

        languages = forms.CharField()

model.py

    class Skills(models.Model):

    user = models.OneToOneField(User,primary_key=True)
    #skills = models.CharField(max_length = 128, null=True, blank=True)
    skills =  ArrayField(models.IntegerField( null=True, blank=True, 
default = -1 ))


    class Interests(models.Model):

    user = models.OneToOneField(User,primary_key=True)
    #interests = models.CharField(max_length = 128, null=True, blank=True)
    interests =  ArrayField(models.IntegerField( null=True, blank=True, 
default = -1))


  
    
    class Languages(models.Model):

    user = models.OneToOneField(User,primary_key=True)

    languages = 
 ArrayField(models.CharField(max_length=50,blank=True,default="None"))



    #*******************SIGNALS***********************


    @receiver(post_save, sender=settings.AUTH_USER_MODEL)
    def create_profile_handler(sender, instance, created, **kwargs):
    
    if not created:
       print("hello#########")
       return

    profile = Profile(user=instance)
    interests = Interests(user=instance)
    skills= Skills(user=instance)
    languages = Languages(user=instance)

    interests.interests = [0]
    skills.skills = [0]
    languages.languages = ["None"]

    skills.save()
    interests.save()
    languages.save()
    profile.save()



    DataError at /makeProfile/step2/
    missing "]" in array dimensions
    LINE 1: ...akeProfile_skills" SET "user_id" = 11, "skills" = 
 '[0,1,2,3,...
                                                             ^
    Request Method: POST
    Request URL: http://127.0.0.1:8888/makeProfile/step2/
    Django Version: 1.8.7
    Exception Type: DataError
    Exception Value: 
    missing "]" in array dimensions
    LINE 1: ...akeProfile_skills" SET "user_id" = 11, "skills" = 
 '[0,1,2,3,...
                                                             ^
    Exception Location: /home/g4/django/pureRu/lib/python3.4/site-p   
ackages/django/db/backends/utils.py in execute, line 64
    Python Executable: /home/g4/django/pureRu/bin/python
    Python Version: 3.4.3
    Python Path: 
    ['/home/g4/django/pureRu/src',
    '/home/g4/django/pureRu/lib/python3.4',
    '/home/g4/django/pureRu/lib/python3.4/plat-x86_64-linux-gnu',
    '/home/g4/django/pureRu/lib/python3.4/lib-dynload',
    '/usr/lib/python3.4',
    '/usr/lib/python3.4/plat-x86_64-linux-gnu',
    '/home/g4/django/pureRu/lib/python3.4/site-packages']
    Server time: Fri, 27 Nov 2015 18:42:54 +0000

TrackBack:

    Environment:


    Request Method: POST
    Request URL: http://127.0.0.1:8888/makeProfile/step2/

    Django Version: 1.8.7
    Python Version: 3.4.3
    Installed Applications:
    ('django.contrib.auth',
    'django.contrib.admin',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'crispy_forms',
    'registration',
    'newsletter',
    'questions',
    'makeProfile')
    Installed Middleware:
    ('django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware')


Traceback:

        File 
"/home/g4/django/pureRu/lib/python3.4/site-packages/django/core/handlers/base.py"
 
in get_response
          132.                     response = wrapped_callback(request,   
*callback_args, **callback_kwargs)
        File "/home/g4/django/pureRu/lib/python3.4/site- 
 packages/django/contrib/auth/decorators.py" in _wrapped_view
          22.                 return view_func(request, *args, **kwargs)
         File "/home/g4/django/pureRu/src/makeProfile/views.py" in step2
          111.             instance2p1.save()
        File "/home/g4/django/pureRu/lib/python3.4/site- 
 packages/django/db/models/base.py" in save
          734.                        force_update=force_update,   
update_fields=update_fields)
         File 
"/home/g4/django/pureRu/lib/python3.4/site-packages/django/db/models/base.py" 
in save_base
          762.             updated = self._save_table(raw, cls, 
force_insert,  force_update, using, update_fields)
        File "/home/g4/django/pureRu/lib/python3.4/site- 
packages/django/db/models/base.py" in _save_table
          827.                                       forced_update)
          File "/home/g4/django/pureRu/lib/python3.4/site- 
 packages/django/db/models/base.py" in _do_update
          877.         return filtered._update(values) > 0
          File "/home/g4/django/pureRu/lib/python3.4/site- 
packages/django/db/models/query.py" in _update
          580.         return 
query.get_compiler(self.db).execute_sql(CURSOR)
    File "/home/g4/django/pureRu/lib/python3.4/site- 
packages/django/db/models/sql/compiler.py" in execute_sql
          1062.         cursor = super(SQLUpdateCompiler,   
self).execute_sql(result_type)
          File "/home/g4/django/pureRu/lib/python3.4/site- 
 packages/django/db/models/sql/compiler.py" in execute_sql
      840.             cursor.execute(sql, params)
    File 
"/home/g4/django/pureRu/lib/python3.4/site-packages/django/db/backends/utils.py"
 
in execute
           79.             return super(CursorDebugWrapper, 
self).execute(sql,   params)
          File "/home/g4/django/pureRu/lib/python3.4/site- 
 packages/django/db/backends/utils.py" in execute
           64.                 return self.cursor.execute(sql, params)
           File "/home/g4/django/pureRu/lib/python3.4/site- 
packages/django/db/utils.py" in __exit__
          98.                 six.reraise(dj_exc_type, dj_exc_value, 
traceback)
          File 
"/home/g4/django/pureRu/lib/python3.4/site-packages/django/utils/six.py" in 
reraise
          685.             raise value.with_traceback(tb)
          File "/home/g4/django/pureRu/lib/python3.4/site- 
 packages/django/db/backends/utils.py" in execute
          64.                 return self.cursor.execute(sql, params)
    
         Exception Type: DataError at /makeProfile/step2/
         Exception Value: missing "]" in array dimensions
         LINE 1: ...akeProfile_skills" SET "user_id" = 11, "skills" =   
'[0,1,2,3,..
    .^

I am hoping its not a typo if you read all of that but I have had two eyes 
on this code and have checked it a million times.... So at this stage I am 
just hoping someone out there can help.

Thank you

-- 
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+unsubscr...@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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/c9483f8d-5b82-4318-b61c-5c96a2672dcf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to