2016-08-12 23 views
1

バックエンドにDjango、フロントエンドにReactを使用して長方形を描画しようとしています。 JSON形式の4つの座標点(x、y)で第三者がAPIをヒットし、Reactを使用して線を描画します。Django:長方形をモデル化する方法は?

class Rectangle(models.Model): 
    name = models.CharField(max_length=10) 
    def __str__(self): 
     return self.name 

class Point(models.Model): 
    rectangle = models.ForeignKey(Rectangle, on_delete = models.CASCADE) 
    x1 = models.FloatField() 
    y1 = models.FloatField() 
    def __str__(self): 
     return '{} , {}'.format(self.x1, self.y1, self.x2, self.y2) 
:私は8つのフィールド{(X1、Y1)、(X2、Y2)、(X3、Y3)、(X4、Y4)}または私はのような2つのモデルを維持する必要がありますと四角形という名前の単一のモデルを維持する必要があります

2つのモデルを保持すると、シリアライザとクラスベースのビューを作成して、提供されたデータを処理すると少し複雑になります。私は何をすべきか?助言がありますか?

+1

モデルには常に4点があると確信しているなら、4点の座標を含む1つのモデルを使うことをお勧めします。ポイントモデルをFKを介して形状モデルに接続する方法は、あなたが必要とするだけのポイントを簡単に持つことができるので、クールです。 –

+0

ポイントデータをどうにかインデックス化しますか?または空間的なクエリを実行しますか?そうでない場合は、すべてをJSONデータとして単純に保存できます。個々のテーブルにポイントを格納するIMHOはオーバーヘッドです。 –

+0

あなたの提案をありがとう.. –

答えて

0

私は間違いなく1つのシンプルなモデルを使用することをお勧めします。あなたが新しい矩形エンジンや何か洗練されたものを作っていないなら、それで十分でしょう。

@BasicWolfはすでにコメントで言いましたが、ポイントを1つのフィールドに入れてJSONとして、あるいはより簡単にカンマ区切りにすることも考えられます(ポイントを照会する必要がない場合)。その後、ポイントを取得するときにsplitを使用してペアを抽出し、APIを介してそのペアを返します。

関連する問題