hi..need help..
Here are the model :
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
slug = models.SlugField(max_length=50, unique=True, help_text='Unique Value for Article page URL, created from title.')
is_publish = models.BooleanField(default=False)
categories = models.ManyToManyField(Category)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'post'
ordering = ['-created_at']
verbose_name_plural = 'Posts'
def __unicode__(self):
return self.title
@models.permalink
def get_absolute_url(self):
return ('article_post', ())
here are my view :
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(initial=post)
return render_to_response(template_name,locals(),context_instance = RequestContext(request) )
here are the template :
{% extends "myadmin/index.html" %}
{%block content %}
<br /><br />
<table class="formtable">
<form action="" method="post">
{% csrf_token %}
<tbody>
{% for field in form.visible_fields %}
{% if forloop.first %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% endif %}
<tr class="{% cycle 'altRow' 'evenRow' %}">
<td>{{ field.label_tag }}</td>
<td>{{ field }}
{{ field.errors }}
</td>
</tr>
{% endfor %}
</tbody>
</table><input type="hidden" name="next" value="{{ reuest.path }}">
<input type="submit" value="Submit" />
</form>
</table>
{% endblock %}
The problem is, when in the view, the form is unbound the page display .
when i bound the form like this :
form = AdminPostForm(initial=post) => generate error in template
but when
form = AdminPostForm() => No error but the field all empty
What i intend to do is, edit the data in the form, which like change form/edit form.
any clue for this error..
the error are :
TemplateSyntaxError at /article/change/
Caught AttributeError while rendering: 'Post' object has no attribute 'get'
Request Method: |
GET |
Request URL: |
http://127.0.0.1:8000/article/change/?id=4 |
Django Version: |
1.3 |
Exception Type: |
TemplateSyntaxError |
Exception Value: |
Caught AttributeError while rendering: 'Post' object has no attribute 'get' |
Exception Location: |
c:\python27\lib\site-packages\django\forms\forms.py in value, line 470 |
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: |
Sun, 14 Aug 2011 21:14:41 +0800 |
Template error
In template c:\users\mulianto\workspace\myblog\src\myblog\templates\blog\admin\change_post.html
, error at line 9
Caught AttributeError while rendering: 'Post' object has no attribute 'get'
1 |
{% extends "myadmin/index.html" %}
|
2 |
|
3 |
{%block content %}
|
4 |
<br /><br />
|
5 |
<table class="formtable">
|
6 |
<form action="" method="post">
|
7 |
{% csrf_token %}
|
8 |
<tbody>
|
9 |
{% for field in form.visible_fields %}
|
10 |
{% if forloop.first %}
|
11 |
{% for hidden in form.hidden_fields %}
|
12 |
{{ hidden }}
|
13 |
{% endfor %}
|
14 |
{% endif %}
|
15 |
<tr class="{% cycle 'altRow' 'evenRow' %}">
|
16 |
<td>{{ field.label_tag }}</td>
|
17 |
<td>{{ field }}
|
18 |
{{ field.errors }}
|
19 |
</td>
|
---|
Environment:
Request Method: GET
Request URL:
http://127.0.0.1:8000/article/change/?id=4Django Version: 1.3
Python Version: 2.7.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.flatpages',
'myblog.utils',
'myblog.article',
'myblog.polling']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware')
Template error:
In template c:\users\mulianto\workspace\myblog\src\myblog\templates\blog\admin\change_post.html, error at line 9
Caught AttributeError while rendering: 'Post' object has no attribute 'get'
1 : {% extends "myadmin/index.html" %}
2 :
3 : {%block content %}
4 : <br /><br />
5 : <table class="formtable">
6 : <form action="" method="post">
7 : {% csrf_token %}
8 : <tbody>
9 : {% for field in form.visible_fields %}
10 : {% if forloop.first %}
11 : {% for hidden in form.hidden_fields %}
12 : {{ hidden }}
13 : {% endfor %}
14 : {% endif %}
15 : <tr class="{% cycle 'altRow' 'evenRow' %}">
16 : <td>{{ field.label_tag }}</td>
17 : <td>{{ field }}
18 : {{ field.errors }}
19 : </td>
Traceback:
File "c:\python27\lib\site-packages\django\core\handlers\base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "C:\Users\mulianto\workspace\myblog\src\myblog\..\myblog\article\views.py" in myadmin_change_post
132. return render_to_response(template_name,locals(),context_instance = RequestContext(request) )
File "c:\python27\lib\site-packages\django\shortcuts\__init__.py" in render_to_response
20. return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "c:\python27\lib\site-packages\django\template\loader.py" in render_to_string
188. return t.render(context_instance)
File "c:\python27\lib\site-packages\django\template\base.py" in render
123. return self._render(context)
File "c:\python27\lib\site-packages\django\template\base.py" in _render
117. return self.nodelist.render(context)
File "c:\python27\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "c:\python27\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "c:\python27\lib\site-packages\django\template\loader_tags.py" in render
127. return compiled_parent._render(context)
File "c:\python27\lib\site-packages\django\template\base.py" in _render
117. return self.nodelist.render(context)
File "c:\python27\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "c:\python27\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "c:\python27\lib\site-packages\django\template\loader_tags.py" in render
127. return compiled_parent._render(context)
File "c:\python27\lib\site-packages\django\template\base.py" in _render
117. return self.nodelist.render(context)
File "c:\python27\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "c:\python27\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "c:\python27\lib\site-packages\django\template\loader_tags.py" in render
127. return compiled_parent._render(context)
File "c:\python27\lib\site-packages\django\template\base.py" in _render
117. return self.nodelist.render(context)
File "c:\python27\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "c:\python27\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "c:\python27\lib\site-packages\django\template\loader_tags.py" in render
64. result = block.nodelist.render(context)
File "c:\python27\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "c:\python27\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "c:\python27\lib\site-packages\django\template\loader_tags.py" in render
64. result = block.nodelist.render(context)
File "c:\python27\lib\site-packages\django\template\base.py" in render
744. bits.append(self.render_node(node, context))
File "c:\python27\lib\site-packages\django\template\debug.py" in render_node
73. result = node.render(context)
File "c:\python27\lib\site-packages\django\template\defaulttags.py" in render
227. nodelist.append(node.render(context))
File "c:\python27\lib\site-packages\django\template\debug.py" in render
92. output = force_unicode(output)
File "c:\python27\lib\site-packages\django\utils\encoding.py" in force_unicode
71. s = unicode(s)
File "c:\python27\lib\site-packages\django\forms\forms.py" in __unicode__
408. return self.as_widget()
File "c:\python27\lib\site-packages\django\forms\forms.py" in as_widget
439. return widget.render(name, self.value(), attrs=attrs)
File "c:\python27\lib\site-packages\django\forms\forms.py" in value
470. data = self.form.initial.get(
self.name, self.field.initial)
Exception Type: TemplateSyntaxError at /article/change/
Exception Value: Caught AttributeError while rendering: 'Post' object has no attribute 'get'