私はmodels.py宣言の順序はmodels.py(Django/Python)で重要ですか?私は私が手にこれを行うと
class ZipCode(models.Model):
zip = models.CharField(max_length=20)
cities = City.objects.filter(zip=self).distinct()
class City(models.Model):
name = models.CharField(max_length=50)
slug = models.CharField(max_length=50)
state = models.ForeignKey(State)
zip = models.ManyToManyField(ZipCode)
でこのようなものを持っている:
NameError: name 'City' is not defined
は、これは、宣言の順序が重要?もしそうなら、私はどのようにこれを行うことができます。いずれにしても、私はこれを整理するので、NameErrorを取得するように見えます。
ありがとうございました。
こんにちはシェーン、あなたの提案は、郵便番号が1つの都市にのみ関連付けることができますが、郵便番号は複数の都市に属することができ、1つの都市には複数の郵便番号があると考えています。そうじゃないの? – rick
いいえ、多対1の関係を持つことができますが、ここで使用した構文には慣れていません。私が上で提供したリンクによると、 "多対1の関係を定義するには、ForeignKey()を使用してください" –
多対多と多対多の2つの異なる関係、シェーンです。このケースでは、おそらく単一の郵便番号として多対多が複数の都市を表す場合があります(国際的に考える)。それはポイントのほかにもあります。双方向のバイナリ関係を宣言することは悪い考えであり、冗長です。 – ozan