0

私はDjangoと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:

 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は正しいと思います。あなたがそれを見たいならば、私に尋ねてください;)

POSTでのDjangoサーバーからのエラー:

[28/Sep/2012 07:21:46] "POST /buildings/generate/point HTTP/1.1" 403 2294

私は知っておくべきワスを知りません、私はあなたの手にあります。

ターンク

4

1 に答える 1

0

エラーの数は完全に信じられないほどでした。

これがマーカーの新しいビューです。今のところ、csrfトークンは無視します。

@csrf_exempt
def point(request):
    if request.method == 'POST': 
        p = Point()
        building = Building.objects.get(pk = request.POST["id_edificio"]) 
        p.id_edificio = building
        p.RFID = request.POST["RFID"]         
        p.x = request.POST["x"] 
        p.y= request.POST["y"]
        p.piano = request.POST["piano"] 
        p.ingresso = request.POST["ingresso"]
        p.save() 

そしてそれは動作します!Marker toString()メソッドにもマイナーエラーがありました(「x」ではなく「X」として)が、それらはマイナーエラーにすぎませんでした。

于 2012-09-28T14:08:49.847 に答える