すでに同じことを求める質問がいくつかあります。しかし、それらは2010年のものであり、あまり役に立ちませんでした。それで、2010年以降、この面での更新があったのではないかと思います。
グーグルで私は自然キーの使用法を説明するこのリンクを見つけました。しかし、私の問題は、そこから異物を取得することに関するものなので、役に立ちません。django.contrib.auth.models.User
私の問題は次のとおりです。QuerySetをシリアル化して、外部キーオブジェクトも取得するようにします。これは、JSONとしてクライアントに渡すためです。からのdjango.core
シリアライザーはそれを行いません。したがって、私の場合、単に問題を解決するために、モデルに別のフィールドを追加して、外部オブジェクトから必要な値を含めました。ただし、冗長データが発生します。
私のサンプルモデルには、username
可能であれば削除したいものが含まれており、代わりに外部キーで取得します。
user = models.ForeignKey(User)
username = models.CharField(max_length=100, null=False)