對於問題1,這很有意義,因爲如果您創建的模型是由其他模型引用的,則說明模型鍵必須存在。我建議你做的是看看saving multiple models with a transaction。
2是很容易的,只需使用jQuery/Javascript來顯示/隱藏基於用戶選擇的事件瀏覽器中的相應字段。
基於您的評論,下面是我如何處理數據,並從服務器
//Submit data to server, assuming you have already extracted out the relevant data values
$("some_button").click(function(e){
$.ajax({
url : "someUURLLocation/",
type : "POST",
data : {"data" : JSON.stringify({"field1" : var1, "field2" :var2}),
dataType : "json",
success : function(results){
if (results.success == "true") {
//handle DOM insertion and other stuff
} else
alert(results.message);
}
});
}
urls.py一個例子:
from django.conf.urls import patterns, url
from $APPNAME import views
urlpatterns = patterns("",
...
...
url(r'^someURLLocation/$', views.handleDataSubmission),
...
)
views.py:
from django.http import HttpResponse
from django.utils import simplejson
def handleDataSubmission(request):
data = simplejson.loads(request.POST.get("data", None))
if data is not None:
newPost = Post.objects.create(field1 = data["field1"], field2 = data["field2"])
dataReturn = [{"val1" : newPost.title, "val2" : newPost.date}]
return HttpResponse(simplejson.dumps({"success" : "true", "data" : dataReturn}), mimetype = "application/json")
else:
return HttpResponse(simplejson.dumps({"success" : "false", "message" : "Invalid data received by server"}), mimetype = "application/json")
就像我說過的,我知道如何將字段添加到DOM,而不是如何在視圖函數中處理它們。 – Niels
感謝你的例子。我只是想知道我是否也可以使用這種方法提交文件? – Niels
是的,你可以使用這種方法處理文件上傳。不過,我建議你在http://stackoverflow.com/questions/5871730/need-a-minimal-django-file-upload-example檢查出的jQuery插件文件上傳和信息 – Jason