外部APIを監視し、ドキュメントどおりに機能することを確認するツールを作成しています。
基本的に私は2つのモデルを持っています:
ServerTest
、これには、ターゲットサーバーがそのURLに対して返すと予想されるURLとjsonの文字列が含まれています
と
TestResult
ServerTest
これには、サーバーの実際の応答を含む文字列、およびテストが発生したときのタイムスタンプとの 外部キー関係があります。
定期的に、アプリはそれぞれを実行しServerTest
、TargetServerにpingを実行し、それぞれに新しいTestResult
インスタンスを作成しますServerTest
。
ここで私がやりたいのは、実際のjsonと予想されるjsonの間のjson差分を表示することです。私はこのウィジェットを使うかもしれないと思っていました:http: //tlrobinson.net/projects/javascript-fun/jsondiff/。また、そのウィジェットをdjangoadminに埋め込むことも考えていました。問題は、diffを生成するために、ServerTestインスタンスと対応する最新のTestResultインスタンスの両方にアクセスする必要があることです。djangoadminを介してこれを行う簡単な方法はないようです。私はあきらめて、別の見方をするべきですか?django管理インターフェースの半分を再実装するまで、そのビューに機能を追加し続けるような気がするので、そうはしません。
要約すると、次のことが必要です。
1)ServerTestインスタンスにアクセスします
2)TestResultインスタンスにアクセスします
3)htmlコンテナを追加します(たとえば、ServerTest管理ページで)
4)現在表示されているServerTestのexpected_jsonと対応する最新のTestResultのactual_jsonにアクセスできるJavaScriptを実行します
5)JavaScriptで前述のコンテナにHTMLを動的に挿入する