0

私はDjangoを学んでおり、Webサイトで公開するアイテムをローカライズするために、さまざまなクラスArchipel -> Island -> Communityを連鎖させました(コミュニティは、1つのArchpelagoのみに属する1つの島のみに属します)。たぶん私は間違っていましたが、ここに私がコーディングした方法があります:

#models.py
class Archipel(models.Model):
    """docstring for Archipel."""
    archipel_name = models.CharField(max_length=200)

    def __str__(self):
        return self.archipel_name

class Island(models.Model):
    """docstring for Archipel."""
    archipel = models.ForeignKey(Archipel, on_delete=models.CASCADE)
    island_name = models.CharField(max_length=200)

    def __str__(self):
        return self.island_name


class Community(models.Model):
    """docstring for Archipel."""
    island = models.ForeignKey(Island, on_delete=models.CASCADE)
    community_name = models.CharField(max_length=200)
    community_zipcode = models.IntegerField(default=98700)

    def __str__(self):
        return self.community_name

次のクラスでは、製品のコミュニティ名を ForeignKey のおかげで簡単に取得できます。

class Product(models.Model):
    community = models.ForeignKey(Community, on_delete=models.CASCADE)
    island = # community->island
    archipelago = # community->island->archipelago
    Product_title = models.CharField(max_length=200)
    Product_text = models.TextField()
    Product_price = models.IntegerField(default=0)
    Product_visible = models.BooleanField(default=False)
    pub_date = models.DateTimeField('date published')

製品の island_name と archipelago プロパティを取得するにはどうすればよいですか? 私は試した

island = Community.select_related('island').get()

しかし、それはすべての島の QuerySet を返します。そこで、「コミュニティ」を試してみましたが、Django は、ForeignKey オブジェクトには slelect_related オブジェクトがないと答えました。

4

1 に答える 1