我試圖上傳一個圖像文件backbone.js和JQuery到由Django REST框架製作的API。我已經開始遵循本教程http://10kblogger.wordpress.com/2012/05/25/a-restful-password-locker-with-django-and-backbone-js/。Django的REST框架和Backbone.js文件上傳問題
當我去提交表單並上傳文件時,我收到了一個錯誤的請求,說明照片是必需的,儘管我選擇了一個文件。
我得到的錯誤是:
{ 「照片」: 「Thisfieldisrequired」]}
也:
的請求的URL /靜態/媒體/ C:/ fakepath/music notes.png在此服務器上找不到。
我的HTML:
<div id="listingModal" class="modal hide fade">
<form id="listingForm" enctype="multipart/form-data" method="post">
<div class="modal-header"><button class="close" data-dismiss="modal">×</button>
<h3>Listing Details</h3>
</div>
<div class="modal-body">{{ form }}</div>
<div class="modal-footer">
<a class="btn" href="#" data-dismiss="modal">Cancel</a>
<input class="btn btn-primary" type="submit" value="Save" />
</div>
</form>
</div>
的節電功能:
handleModal: function(event)
{
event.preventDefault();
event.stopImmediatePropagation();
var form = $('#listingForm');
var listingData =
{
title: $(form).find('#id_title').val(),
description: $(form).find('#id_description').val(),
//user: $(form).find('#id_user').val(),
photo: $(form).find('#id_photo').val(),
trade_completed: $(form).find('#id_trade_completed').val(),
date_created: $(form).find('#id_date_created').val(),
date_completed: $(form).find('#id_date_completed').val(),
};
if($('#listingModal').data('client_id'))
{
listingData.listing_id = $('#listingModal').data('client_id');
this.listings.updateListing(listingData);
}
else
{
this.listings.addNew(listingData);
}
//hide the modal
$('#listingModal').modal('hide');
return this;
},
的updateListing功能:
updateListing: function(listingData)
{
var listing = this.listings.get({id: listingData.listing_id});
if(_.isObject(listing))
{
//iterate through the data, and add it to the model
for(var key in listingData)
{
//dont copy id, already checked
if(key != 'listing_id')
{
listing.set(key,listingData[key]);
}
}
listing.save();
//this.listings.sort();
}
},
我讀過一些事情說這可能是因爲我必須努力盟友上傳文件,但不知道如何做到這一點。任何幫助將不勝感激。
編輯:這裏是我的settings.py媒體URL和靜態URL證明這一切都樹立正確的
MEDIA_ROOT = '/opt/bitnami/apps/django/django_projects/Project/Project/static/media/'
MEDIA_URL = '/static/media/'
STATIC_ROOT = '/opt/bitnami/apps/django/django_projects/Project/Project/static'
STATIC_URL = '/static/static_files_dir'
而且,特別是場被稱爲照片,是和模型的ImageField英寸