Oh i see..

i read the manual, the django book, no such information about that..
oh my..better update the manual there..

thanks for your quick explanation then, i think not a good way to manualy
assign a dictionarry to the form, not like in the documentation / book of
django. now i get it.

Thanks

Mulianto

On Tue, Aug 16, 2011 at 11:58 PM, Tom Evans <tevans...@googlemail.com>wrote:

> Your form is not a model form, and so you cannot pass instance=post.
> Since it is just a regular form, you should pass a dictionary of
> values, with the keys of the dictionary being the names of the fields.
>
> If the form is representing a model, you should be using a model form.
>
> https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/
>
> Cheers
>
> Tom
>
> On Tue, Aug 16, 2011 at 4:47 PM, Phang Mulianto <braveh...@gmail.com>
> wrote:
> >
> > hi anyone can help me...
> >
> > On Mon, Aug 15, 2011 at 12:39 PM, Phang Mulianto <braveh...@gmail.com>
> wrote:
> >>
> >> Hi Daniel,
> >>
> >> i change it to instance, but still got other errors :
> >>
> >> def myadmin_change_post(request,
> template_name='blog/admin/change_post.html'):
> >>     try:
> >>         id= request.GET.get('id','4')
> >>     except ValueError:
> >>         id=1
> >>     #post = get_object_or_404(Post,pk=id)
> >>     post = Post.objects.get(pk=id)
> >>     form = AdminPostForm(instance=post)
> >>     return render_to_response(template_name,locals(),context_instance =
> RequestContext(request) )
> >>
> >> the form :
> >>
> >> class AdminPostForm(forms.Form):
> >>
> >>
> >>     cat_choices = [('private','private')]
> >>
> >>     title =
> forms.CharField(widget=forms.TextInput(attrs={'size':'20','value':'','class':''}),label='Title')
> >>     content=
> forms.CharField(widget=forms.Textarea(attrs={'cols':'40','rows':'5'}),label='Content')
> >>     slug =
> forms.CharField(widget=forms.TextInput(attrs={'size':'20','class':''}),label='Slug')
> >>     is_publish = forms.BooleanField(label='Publish')
> >>     categories = forms.ChoiceField(choices=cat_choices)
> >>     created_at =
> forms.DateTimeField(widget=forms.DateTimeInput(),label='Created at')
> >>     modified_at =
> forms.DateTimeField(widget=forms.DateTimeInput(),label='Modified at')
> >>
> >> any clue where the error migh be..
> >>
> >> TypeError at /article/change/
> >>
> >> __init__() got an unexpected keyword argument 'instance'
> >>
> >> Request Method: GET
> >> Request URL: http://127.0.0.1:8000/article/change/?id=2
> >> Django Version: 1.3
> >> Exception Type: TypeError
> >> Exception Value:
> >>
> >> __init__() got an unexpected keyword argument 'instance'
> >>
> >> Exception Location:
> C:\Users\mulianto\workspace\myblog\src\myblog\..\myblog\article\views.py in
> myadmin_change_post, line 132
> >> Python Executable: c:\python27\python.exe
> >> Python Version: 2.7.2
> >> Python Path:
> >>
> >> ['C:\\Users\\mulianto\\workspace\\myblog\\src\\myblog',
> >>  'c:\\python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg',
> >>  'c:\\python27\\lib\\site-packages\\simplejson-2.1.6-py2.7.egg',
> >>
> >>
> >>  'c:\\python27\\lib\\site-packages\\pyasn1-0.0.13-py2.7.egg',
> >>  'c:\\python27\\lib\\site-packages\\pymongo-1.11-py2.7-win32.egg',
> >>  'c:\\python27\\lib\\site-packages\\mongoengine-0.4-py2.7.egg',
> >>
> >>
> >>  'C:\\Windows\\system32\\python27.zip',
> >>  'c:\\python27\\DLLs',
> >>  'c:\\python27\\lib',
> >>  'c:\\python27\\lib\\plat-win',
> >>  'c:\\python27\\lib\\lib-tk',
> >>  'c:\\python27',
> >>
> >>
> >>  'c:\\python27\\lib\\site-packages',
> >>
> >>
> >>  'c:\\python27\\lib\\site-packages\\PIL']
> >>
> >> Server time: Mon, 15 Aug 2011 12:32:23 +0800
> >>
> >> Traceback Switch to copy-and-paste view
> >>
> >> c:\python27\lib\site-packages\django\core\handlers\base.py in
> get_response
> >>
> >>                     for middleware_method in self._view_middleware:
> >>
> >>                         response = middleware_method(request, callback,
> callback_args, callback_kwargs)
> >>
> >>                         if response:
> >>
> >>                             break
> >>
> >>                 if response is None:
> >>
> >>                     try:
> >>
> >>                         response = callback(request, *callback_args,
> **callback_kwargs)
> >>
> >> ...
> >>
> >>                     except Exception, e:
> >>
> >>                         # If the view raised an exception, run it
> through exception
> >>
> >>                         # middleware, and if the exception middleware
> returns a
> >>
> >>                         # response, use that. Otherwise, reraise the
> exception.
> >>
> >>                         for middleware_method in
> self._exception_middleware:
> >>
> >>                             response = middleware_method(request, e)
> >>
> >> ▶ Local vars
> >> Variable Value
> >> exceptions
> >>
> >> <module 'django.core.exceptions' from
> 'c:\python27\lib\site-packages\django\core\exceptions.pyc'>
> >>
> >> e
> >>
> >> TypeError("__init__() got an unexpected keyword argument 'instance'",)
> >>
> >> callback_args
> >>
> >> ()
> >>
> >> receivers
> >>
> >> [(<function _rollback_on_exception at 0x025CFAB0>, None)]
> >>
> >> middleware_method
> >>
> >> <bound method CsrfViewMiddleware.process_view of
> <django.middleware.csrf.CsrfViewMiddleware object at 0x027A6C30>>
> >>
> >> self
> >>
> >> <django.core.handlers.wsgi.WSGIHandler object at 0x0276F4D0>
> >>
> >> settings
> >>
> >> <django.conf.LazySettings object at 0x01A788D0>
> >>
> >> request
> >>
> >> <WSGIRequest
> >> GET:<QueryDict: {u'id': [u'2']}>,
> >> POST:<QueryDict: {}>,
> >> COOKIES:{'csrftoken': '5fbc1b8cf0e31318c4f7a1904df1b5c2',
> >>  'sessionid': 'ee90c4ad05c1512cc424c7117f1320c9'},
> >> META:{'ALLUSERSPROFILE': 'C:\\ProgramData',
> >>  'APACHE2TRIAD_DIR': 'd:\\apache2triad',
> >>  'APPDATA': 'C:\\Users\\mulianto\\AppData\\Roaming',
> >>  'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files',
> >>  'COMPUTERNAME': 'MULIANTO-PC',
> >>  'COMSPEC': 'C:\\Windows\\system32\\cmd.exe',
> >>  'CONTENT_LENGTH': '',
> >>  'CONTENT_TYPE': 'text/plain',
> >>  'CSRF_COOKIE': '5fbc1b8cf0e31318c4f7a1904df1b5c2',
> >>  'DJANGO_SETTINGS_MODULE': 'myblog.settings',
> >>  'FP_NO_HOST_CHECK': 'NO',
> >>  'GATEWAY_INTERFACE': 'CGI/1.1',
> >>  'HOMEDRIVE': 'C:',
> >>  'HOMEPATH': '\\Users\\mulianto',
> >>  'HTTP_ACCEPT':
> 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
> >>  'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
> >>  'HTTP_ACCEPT_ENCODING': 'gzip,deflate',
> >>  'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5',
> >>  'HTTP_CONNECTION': 'keep-alive',
> >>  'HTTP_COOKIE': 'sessionid=ee90c4ad05c1512cc424c7117f1320c9;
> csrftoken=5fbc1b8cf0e31318c4f7a1904df1b5c2',
> >>  'HTTP_HOST': '127.0.0.1:8000',
> >>  'HTTP_KEEP_ALIVE': '115',
> >>  'HTTP_REFERER': 'http://127.0.0.1:8000/article/listall/',
> >>  'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;
> rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18',
> >>  'LOCALAPPDATA': 'C:\\Users\\mulianto\\AppData\\Local',
> >>  'LOGONSERVER': '\\\\MULIANTO-PC',
> >>  'NUMBER_OF_PROCESSORS': '2',
> >>  'OPENSSL_CONF': 'd:\\apache2triad\\opssl\\bin',
> >>  'OS': 'Windows_NT',
> >>  'PATH':
> 'C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;;c:\\python27\\;;d:\\apache2triad\\bin;d:\\apache2triad\\perl\\bin;d:\\apache2triad\\php\\bin;d:\\apache2triad\\mysql\\bin;d:\\apache2triad\\opssl\\bin;d:\\apache2triad\\python\\bin;d:\\apache2triad\\pgsql\\bin;C:\\Program
> Files\\Enterprise Vault\\EVClient\\',
> >>  'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC',
> >>  'PATH_INFO': u'/article/change/',
> >>  'PHP_PEAR_BIN_DIR': 'd:\\apache2triad\\php\\bin',
> >>  'PHP_PEAR_DATA_DIR': 'd:\\apache2triad\\php\\pear\\data',
> >>  'PHP_PEAR_DOC_DIR': 'd:\\apache2triad\\php\\pear\\docs',
> >>  'PHP_PEAR_INSTALL_DIR': 'd:\\apache2triad\\php\\pear',
> >>  'PHP_PEAR_PHP_BIN': 'd:\\apache2triad\\php\\bin\\php-cgi.exe',
> >>  'PHP_PEAR_SYSCONF_DIR': 'd:\\apache2triad\\php',
> >>  'PHP_PEAR_TEST_DIR': 'd:\\apache2triad\\php\\pear\\tests',
> >>  'PPM_DAT': 'd:\\apache2triad\\perl\\site\\lib\\',
> >>  'PROCESSOR_ARCHITECTURE': 'x86',
> >>  'PROCESSOR_IDENTIFIER': 'x86 Family 6 Model 23 Stepping 10,
> GenuineIntel',
> >>  'PROCESSOR_LEVEL': '6',
> >>  'PROCESSOR_REVISION': '170a',
> >>  'PROGRAMDATA': 'C:\\ProgramData',
> >>  'PROGRAMFILES': 'C:\\Program Files',
> >>  'PROMPT': '$P$G',
> >>  'PSMODULEPATH':
> 'C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\',
> >>  'PUBLIC': 'C:\\Users\\Public',
> >>  'QUERY_STRING': 'id=2',
> >>  'REMOTE_ADDR': '127.0.0.1',
> >>  'REMOTE_HOST': '',
> >>  'REQUEST_METHOD': 'GET',
> >>  'RUN_MAIN': 'true',
> >>  'SCRIPT_NAME': u'',
> >>  'SERVER_NAME': 'mulianto-PC',
> >>  'SERVER_PORT': '8000',
> >>  'SERVER_PROTOCOL': 'HTTP/1.1',
> >>  'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2',
> >>  'SESSIONNAME': 'Console',
> >>  'SSLEAY_CONF': 'd:\\apache2triad\\opssl\\bin',
> >>  'SYSTEMDRIVE': 'C:',
> >>  'SYSTEMROOT': 'C:\\Windows',
> >>  'TEMP': 'C:\\Users\\mulianto\\AppData\\Local\\Temp',
> >>  'TMP': 'C:\\Users\\mulianto\\AppData\\Local\\Temp',
> >>  'USERDOMAIN': 'mulianto-PC',
> >>  'USERNAME': 'mulianto',
> >>  'USERPROFILE': 'C:\\Users\\mulianto',
> >>  'VBOX_INSTALL_PATH': 'C:\\Program Files\\Oracle\\VirtualBox\\',
> >>  'WINDIR': 'C:\\Windows',
> >>  'wsgi.errors': <open file '<stderr>', mode 'w' at 0x012050D0>,
> >>  'wsgi.file_wrapper': <class
> 'django.core.servers.basehttp.FileWrapper'>,
> >>  'wsgi.input': <socket._fileobject object at 0x028E09B0>,
> >>  'wsgi.multiprocess': False,
> >>  'wsgi.multithread': True,
> >>  'wsgi.run_once': False,
> >>  'wsgi.url_scheme': 'http',
> >>  'wsgi.version': (1, 0)}>
> >>
> >> callback
> >>
> >> <function myadmin_change_post at 0x028ECC70>
> >>
> >> resolver
> >>
> >> <RegexURLResolver myblog.urls (None:None) ^/>
> >>
> >> urlresolvers
> >>
> >> <module 'django.core.urlresolvers' from
> 'c:\python27\lib\site-packages\django\core\urlresolvers.pyc'>
> >>
> >> callback_kwargs
> >>
> >> {'template_name': 'blog/admin/change_post.html'}
> >>
> >> response
> >>
> >> None
> >>
> >> urlconf
> >>
> >> 'myblog.urls'
> >>
> >> C:\Users\mulianto\workspace\myblog\src\myblog\..\myblog\article\views.py
> in myadmin_change_post
> >>
> >> def myadmin_change_post(request,
> template_name='blog/admin/change_post.html'):
> >>
> >>     try:
> >>
> >>         id= request.GET.get('id','4')
> >>
> >>     except ValueError:
> >>
> >>         id=1
> >>
> >>     #post = get_object_or_404(Post,pk=id)
> >>
> >>     post = Post.objects.get(pk=id)
> >>
> >>     form = AdminPostForm(instance=post)
> >>
> >> ...
> >>
> >>     return render_to_response(template_name,locals(),context_instance =
> RequestContext(request) )
> >>
> >> def myadmin_new_post(request,
> template_name="blog/admin/change_post.html"):
> >>
> >>     if request.method == 'POST': # If the form has been submitted...
> >>
> >>         form = AdminPostForm(request.POST) # A form bound to the POST
> data
> >>
> >>         if form.is_valid(): # All validation rules pass
> >>
> >> ▶ Local vars
> >>
> >> On Mon, Aug 15, 2011 at 2:06 AM, Daniel Roseman <dan...@roseman.org.uk>
> wrote:
> >>>
> >>> This line:
> >>>     form = AdminPostForm(initial=post)
> >>>
> >>> should be
> >>>     form = AdminPostForm(instance=post)
> >>>
> >>> --
> >>> DR.
> >>>
> >>> --
> >>> You received this message because you are subscribed to the Google
> Groups "Django users" group.
> >>> To view this discussion on the web visit
> https://groups.google.com/d/msg/django-users/-/aasgmM81VrgJ.
> >>> To post to this group, send email to django-users@googlegroups.com.
> >>> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com.
> >>> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
> >>
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> "Django users" group.
> > To post to this group, send email to django-users@googlegroups.com.
> > To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>

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

Reply via email to