我对 Django 和 Japplet 很陌生,这是我与他们合作的第一个项目。Japplet 从 django 静态文件夹中获取一些图像,并允许用户添加一些线条和标记。最后,当单击 JApplet 上的“保存”按钮时,它应该对 Django 服务器进行一些 POST 调用,以保存标记和行。其实我只是用标记测试,我做不到。
这是标记的模型:
class Point(models.Model):
id_edificio = models.ForeignKey(Building)
RFID = models.CharField(max_length=200)
x = models.IntegerField()
y = models.IntegerField()
piano = models.IntegerField()
ingresso = models.BooleanField()
他的观点:
def point(request, id_edificio, RFID, x, y, piano):
point = csrf_exempt(point)
if request.method == 'POST':
get_object_or_404(Building, pk=id_edificio)
p = Point()
p.id_edificio = id_edificio
p.RFID = RFID
p.x = x
p.y= y
p.piano = piano
p.ingresso = True
p.save()
我还没有实现模板,因为我不需要使用 Web 浏览器访问此视图。
网址:
url(r'^buildings/generate/point', 'buildings.views.point'),
JApplet保存方法:
private void saveData(MarkerArrayList markers, PathArrayList paths) {
String response;
URL endpoint = null;
try {
endpoint = new URL("http://127.0.0.1:8000/buildings/generate/point");
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
for(Marker m: markers) {
Reader data = new StringReader("id_edificio="+id_building+"&"+m.toString());
try {
Post.postData(data, endpoint);
} catch (Exception e) {e.printStackTrace();}
}
}
标记 toString() 方法:
public String toString() {
return "RFID="+ RFID + "&" +
"x=" +
"y=" + y + "&" +
"piano=" + floor + "&";
}
我假设我的 java 方法 Post 是正确的。如果你想看,可以问我;)
来自 Django 服务器的 POST 错误:
[28/Sep/2012 07:21:46] "POST /buildings/generate/point HTTP/1.1" 403 2294
我不知道要尝试知道,我在你的手中。
谢谢你