次のモデルは、脆弱性と、その脆弱性を参照するインターネット上の URL を表しています。各 URL は 1 つの脆弱性についてしか言及しておらず、多くの URL がその脆弱性について話していると仮定します。これはモデルをレイアウトする正しい方法ですか?
class Vuln(models.Model):
pub_date = models.DateTimeField("Publication Date")
short_description = models.CharField("Description", max_length=70)
reference_urls = models.ForeignKey(Url, unique=True, blank=True, verbose_name="Reference URLs")
vendor = models.ForeignKey(Vendor, verbose_name="Vendor")
class Url(models.Model):
url = models.URLField("URL", max_length=200)
管理アプリケーションには参照 URL の「選択」ボックスが表示されますが、これは私が望んでいるものではありません。新しい脆弱性オブジェクトを追加すると、入力された既存の URL がすべてドロップダウンに表示されますが、これも不自然です。これは、ブログのコメントと非常によく似た動作をするはずだと思います。コメントは 1 つのブログ エントリにのみ適用され、1 つのブログ エントリには多くのコメントが含まれる場合があります。これを Django モデルで表現するにはどうすればよいですか?