該視圖拋出AttributeError說:'PhotoForm'對象沒有'保留'屬性。會發生什麼 - 函數通過,但實際上並沒有上傳圖像。在調試中,表單無效。Django:AttributeError - 對象沒有任何屬性
我試着打印
- form.reservation
- form.message
- form.photo
但是,這顯示了該回溯(這就是爲什麼形式ISN」 t有效&未完成功能
As我從其他正在工作的函數中構建了它,我有點困惑。謝謝您的幫助!
HTML表單
<form action="/photo/new/" method="post">{% csrf_token %}
<dl>
<dt>{{ form.reservation.label }}</dt>
<dd><select name="reservation"> {% for reservation in reservations %} <option value="{{reservation.id}}">{{reservation.date}} {{reservation.chef.cook.get_profile.firstname}} - {{reservation.guest.get_profile.firstname}}</option>{% endfor %}</select></dd>
<dt>{{ form.photo.label }}</dt>
<dd>{{ form.photo }}</dd>
<dt> {{ form.message.label }}</dt>
<dd>{{ form.message }}</dd>
</dl>
<button type="submit">Submit</button>
</form>
觀
@login_required
def new_photo(request, template_name="photo/newphoto.html"):
meals = Reservation.objects.filter(guest=request.user.id)
form = PhotoForm(request.POST)
form.data = { "reservations": meals }
if request.method == 'POST':
form.photographer = request.user
form.data.get('reservation')
print form.reservation
print form.message
print form.photo
if form.is_valid():
print" hellos"
save_reservation_photo(request.FILES["photo"])
photo = form.save(commit=False)
photo.photographer = request.user
photo.save()
return HttpResponseRedirect('/photo/%d/' % photo.id)
else:
form = PhotoForm()
data = {'form':form,'reservations':meals,
'add':True
}
return render_to_response(template_name,
data,
context_instance=RequestContext(request))
的形式爲:
class PhotoForm(forms.ModelForm):
class Meta:
model = Photo
fields = ('reservation','photo','message')
def __init__(self, *args, **kwargs):
super(PhotoForm, self).__init__(*args, **kwargs)
該型號:
class Photo(models.Model):
photographer = models.ForeignKey(User)
pub_date = models.DateTimeField(default=datetime.now,auto_now_add=True,db_index=True)
reservation = models.ForeignKey(Reservation)
message = models.CharField(default='',max_length=140)
photo = models.ImageField(default='',upload_to="reservation_images/")
回溯
Traceback:
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/photo/new/
Django Version: 1.2.3
Python Version: 2.7.0
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.comments',
'django.contrib.markup',
'django.contrib.sitemaps',
'lib.debug_toolbar',
'src',
'django.contrib.admin']
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',
'lib.debug_toolbar.middleware.DebugToolbarMiddleware')
Traceback:
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/photo/new/
Django Version: 1.2.3
Python Version: 2.7.0
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.comments',
'django.contrib.markup',
'django.contrib.sitemaps',
'lib.debug_toolbar',
'src',
'django.contrib.admin']
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',
'lib.debug_toolbar.middleware.DebugToolbarMiddleware')
Traceback:
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
100. response = callback(request, *callback_args, **callback_kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
25. return view_func(request, *args, **kwargs)
File "/Users/emilepetrone/Sites/meal/../meal/src/views.py" in new_photo
532. print form.reservation
Exception Type: AttributeError at /photo/new/
Exception Value: 'PhotoForm' object has no attribute 'reservation'
你能發佈回溯嗎?順便說一句:你不需要設置PhotoForm __init__,因爲如果PhotoForm不設置任何構造函數,那麼基類構造函數將被稱爲 – errx 2011-01-24 00:18:01
肯定的事情..謝謝 – Emile 2011-01-24 00:22:09