djangoのUserモデルに 'スポンサー'という列を追加しようとしています。問題は、この列にユーザー名フィールドを参照させたいということです(空白のままにすることもできます)。Django同じテーブルを参照するUserモデルにフィールドを追加します
(DjangoのUserモデルテーブル)
+--------+------------------+
|username| sponsor |
+--------+------------------+
| Tom | ... |
| John | Tom |
| Louis | Tom |
| Michael| Louis |
+--------+------------------+
私は次のモデル
を持っている:私は、ユーザーあるユーザが(なしO)他の多くのスポンサーすることができ、このような何かを意味します
# models.py
class Sponsor(models.Model):
user = models.OneToOneField(User, primary_key=True)
sponsor = models.ForeignKey(User, null=True, to_field='username', related_name='spn')
私はそれをうまくやっているのか分かりません。しかし、私は管理者ページからスポンサーを追加するために次のことを行っている:私は私の管理ページで新しいユーザーを追加したい場合は
# admin.py
class SponsorInline(admin.TabularInline):
model = Sponsor
fk_name = 'sponsor'
、私がスポンサーを追加するために、3つのスクロールバーを受けています、もちろん、それはOKとは思われません。
EDITは、私は私のSponsorInLineクラスにプロパティ
extra = 1
を追加し、管理者ページは今だけ1行を示しています。しかしまだそれは私が必要とする1対多の関係を働いているようではない
スポンサーのユーザー名を入力するフォームを作る方法はありますか?このすべてを達成する最善の方法は何ですか?
"私はスポンサーを追加するために3つのスクロールバーを受け取っています" - これを明確にするために質問を編集できますか?スクリーンショットを追加すると役立ちます。 –
@GrishaLevit [OK]を、私はそれを追加しました! – rvliscano
'extra'プロパティを使って空行の数を指定することができます。 SponsorInlineクラスに 'extra = 1'を追加しようとします。 – neverwalkaloner