django의 User 모델에 'sponsor'열을 추가하려고합니다. 문제는이 열이 사용자 이름 필드를 참조하도록하고 싶습니다 (그리고 그것은 비워 둘 수 있습니다). 나는 한 사용자의 스폰서가 될 수 의미 많은 다른 사용자 (없음 O)Django는 동일한 테이블을 참조하는 사용자 모델에 필드를 추가합니다.
이 같은뭔가 :
(장고 사용자 모델 테이블)
+--------+------------------+
|username| sponsor |
+--------+------------------+
| Tom | ... |
| John | Tom |
| Louis | Tom |
| Michael| Louis |
+--------+------------------+
나는 다음과 같은 모델
에게 있습니다# 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'
, 내가 스폰서를 추가하는 세 가지 스크롤 막대를 수신하고있어, 물론 괜찮은 것 같지 않습니다.
편집은 내 SponsorInLine 클래스에 재산
extra = 1
을 추가하고, 관리자 페이지는 이제 하나 개의 라인을 보여줍니다. 그래도 여전히 일대일 관계가 작동하지 않는 것 같습니다
입력란에 스폰서 사용자 이름을 입력하는 방법이 있습니까? 이 모든 것을 성취하는 가장 좋은 방법은 무엇입니까?
"스폰서를 추가 할 수있는 세 개의 스크롤 막대가 있습니다."-이 질문을 명확히하기 위해 질문을 편집 할 수 있습니까? 스크린 샷을 추가하면 도움이 될 수 있습니다. –
@GrishaLevit 좋아, 이제 막 추가했습니다! – rvliscano
'extra' 속성을 사용하여 빈 줄 수를 지정할 수 있습니다. SponsorInline 클래스에'extra = 1'을 추가하십시오. – neverwalkaloner