データベース構造をセットアップするときに、Student クラスの「student_id」というフィールドを「primary_key=True」に設定するほど愚かでした。「student_id」を変更する必要がある(まれな)機会があることに気付いたのはずっと後のことです。フォームを介してそれを行うと、Django は自動的に学生を複製しますが、これは私が望んでいるものではありません。
「primary_key=True」を「unique=True」に変更したいのですが、どうすればよいか悩んでいます。
私の現在の計画は、「id」というフィールドを Student クラスに追加し、移行を適用し、シェルに入り、for ループで実行中の番号を割り当てるだけです。
counter = 0
for s in Student.objects.all():
counter += 1
s.id = counter
s.save()
次に、models.py に戻り、「primary_key=True」という行を「unique=True」に変更します。Django が「id」フィールドを主キーのないクラスと同じように処理するようにするにはどうすればよいですか (つまり、新しい学生がデータベースに追加されると、新しい ID が自動的に割り当てられます)。