私は一連の郵便番号タグ付き投稿を持つ Django アプリを持っています。すべての投稿を州ごとに表示するページを作成したいのですが、どうすればよいかわかりません。私は ZipCode テーブルを持っていますが、私の Post.zipcode フィールドはそれに関連していません (主にユーザーが入力したものであり、DB にない、または米国外からの zip を許可しているため)。
私の関連モデル:
class Post(models.Model):
body = models.TextField()
zipcode = models.CharField(max_length=5)
class ZipCode(models.Model):
zipcode = models.CharField(max_length=5)
city = models.CharField(max_length=64)
statecode = models.CharField(max_length=2)
statename = models.CharField(max_length=32)
latitude = models.FloatField()
longitude = models.FloatField()
私のDjangoビューでは、URLパターンから渡された「状態」パラメーターを取得して、次のようにしたいと思います:
def posts_by_state(request, state):
posts = Post.objects.filter(zipcode__statecode=state)
...
残念ながら、私の Post.zipcode フィールドは ZipCode の外部キーではないため、試してみると次のエラーが発生します。
FieldError at /post/state/VT/
Join on field 'zipcode' not permitted.
要求された状態のためにすべての投稿をまとめるクエリセットをどのように構築するべきかについてのヒントはありますか? 前もって感謝します。