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.