2016-07-30 13 views
0

私はWebアプリケーションで作業しています。このアプリは、ニューヨーク、ウィーナできるモデルLocation、パリなどオブジェクトの各ペアの価格を保存する方法

は、今私はLocationオブジェクトの集合から任意のタプルに対して価格を保持しているいくつかのデータ構造/テーブルを持っていると思いますがあります。 - まだ3つのオブジェクトがある場合

だからNY、PA、WIは、私がのために価格を保存する必要があります。

NY - PA #(since there is NY - PA price, I don't have to store PA - NY which is the same) 
NY - WI 
PA - WI 

そして私は、管理者は/任意のタプルの変更価格を追加できるようにしたいです。

どうすればよいですか?私は価格についての情報を保持するいくつかのグリッドについて考えましたが、私はDjango adminDjango ORMにそのようなグリッドをシミュレートする方法を知らない。私はこれまで何をやったか

は、次のようになりますモデルCityPriceの作成です:

class CityPrice(models.Model): 
    city_one = models.ForeignKey(City, related_name='city_tuple') 
    city_two = models.ForeignKey(City) 
    price = models.DecimalField(max_digits=8, decimal_places=2, blank=True, null=True) 

    class Meta: 
     unique_together = (('city_one', 'city_two'),) 

しかし、あなたが見ることができるように、複数の問題がそこにあります。 1つの問題は、都市が「等しくない」ことであり、都市はcity_oneでなければならず、1つはcity_twoでなければならないということです。もう1つの問題は、が各タプルに対して新しいタブを0​​に開いてそこで価格を変更する必要があり、非常に不快であるということです。

答えて

0

LocationモデルはManyToManyFieldというフィールドがあり、CityPriceというモデルにリンクしています。そのように多くのLocationモデルは同じ価格を共有し、複数の価格を1つの都市に割り当てることができます。ここではそれについて

price_object.locations.all() 

詳しい情報と例:

class Location(models.Model): 
    # your stuff 
    price = models.ManyToManyField(CityPrice) 

あなたはよりで同じ価格を共有都市を取得することができますhttps://docs.djangoproject.com/en/1.9/topics/db/examples/many_to_many/

+0

しかし、一つの場所だけではなく、一つの値段を持っています。 ..それは**ロケーションオブジェクトの数を持っています - 1 **価格。各ペアについて。それでこの方法ではうまくいかないでしょうか? –

+0

その場合、ManyToManyフィールドを使用します。 –

関連する問題