홈>
현재 사용자가 자신이 추천 한 모든 사람들을 볼 수 있도록 모델을 설계하고 싶습니다. 'stephen->jack', 'stephen->mike'와 같은 사용자 간의 모든 추천 관계를 추적하는 다른 모델을 만듭니다.
class CustomUser(AbstractBaseUser):
// ....... a lot more fields
referred_who = models.ForeignKey('referral', blank=True, null=True, on_delete = models.CASCADE)
class Referral(models.Model):
referrer = models.ForeignKey(CustomUser, on_delete = models.CASCADE)
referred = models.ForeignKey(CustomUser, on_delete = models.CASCADE, related_name='referred')
class Meta:
unique_together = (("referrer", "referred"),)
def __str__(self):
return self.referrer.username + ' -> ' + self.referred.username
지금 당장 질문은 한 명의 사용자가 여러 사용자를 참조 할 수 있지만 모든 추천 관계를 추적하는 데 사용하는 'referred_who'필드는 그 중 하나만 유지할 수 있다는 것입니다. 백엔드 관리자에서는 다음과 같이 표시됩니다.
Referred who: stephen1 -> stephen2 (with a dropdown with all the relations but I can only choose one of them)
내가 원하는 것은 :
Referred who: stephen1 -> stephen2 stephen1 -> stephen3 stephen1 -> stephen4
이 'Referred_who'필드에 액세스하여 현재 사용자와의 모든 관계를 얻을 수 있습니다.
외래 키 필드 중 하나를 선택하는 대신 외래 키 필드에 추가하는 방법이 있습니까? 누군가 나에게 그 모범을 보여줄 수 있습니까? 많은 감사합니다.
- 답변 # 1
관련 자료
- 숨겨진 양식 필드의 Django 외래 키
- python - Django Foreign Key Field는 하나의 필드에 다른 필드 만 할당합니다
- python - 장고 orm - 다 대다 필드와 함께 두 가지 조건에서 조인하는 방법
- python - Django에서 첫 번째 외래 키로 주문
- 왜 내가 프로젝트를 개발하려고 할 때 파이썬 장고에서 필드 오류가 발생합니까?
- python - 장고보기에서 모델의 선택 필드 변경
- python - 여러 외래 키에서 장고 제외 쿼리를 수행하는 방법
- python - 드롭 다운 목록 외래 키 장고
- forms - django에서 crispy를 사용하여 필드 크기 변경
- python - Django에서 할당하는 외래 키 값
- python - 하나의 고유 필드를 사용하여 역방향 외래 키 관계에서 장고 쿼리 세트 가져 오기
- python - 모든 필드를 Django로 채울 때 "이 필드는 필수입니다"
- python - 외래 키를 기준으로 데이터 필터링 - 장고
- python - 장고에서 필드 이름과 도움말 텍스트가 여러 형태로 사라짐
- Django 신호를 통해 모델 필드를 post_save로 채우는 방법은 무엇입니까?
- python - 장고 레스트 api drf - viewset가 get에서 필드를 숨기지 만 put에 포함
- python - Django에서 템플릿의 모델에서 이미지 필드를 표시하려면 어떻게해야합니까?
- python - Django select_related 연결 된 외래 키는 비 직접 관련 객체를 반환하지 않습니다
- Django Rest Framework에서 한 필드를 요약하는 필드를 집계하는 방법이 있습니까?
- Django Rest Framework의 슬러그 필드
관련 질문
- 직렬 변환기를 통해 django rest 프레임 워크에서 새 의견을 받았을 때 게시물 작성자에게 메일을 보내는 방법은 무엇입니까?
- 내 필드를 자동으로 채우고 django 관리 사이트에서 편집할 수 없도록 만드는 방법
- python : Django ORM이 내 객체를 저장하지 않는 이유
- django : DRF Modelviewset을 사용하여 디테일뷰용 URL 생성
- python : ModelSerilizer에서 create() 메서드를 재정의하고 ID로 개체 가져오기(Django 3.2)
- django rest framework에서 저자의 책을 보여주는 API 만들기
- django : 사용자가 질문을 하기 위해 코인을 주어야 하고, 답변자가 코인을 받는 질문 앱
- python : Django 쿼리가 나머지 프레임워크의 페이지 매김 모델에서 올바르게 정렬/정렬되지 않습니다.
- javascript : 사용자를 외래 키로 사용하여 React로 Django 데이터베이스에 객체 생성 시도(rest-framework)
- django : 디코딩()을 호출할 때 "알고리즘" 인수에 대한 값을 전달해야 합니다.
당신은
Referral
가 필요하지 않습니다 수업. 당신의referred_who
필드는CustomUser
를 가리킬 수 있습니다 . 나는 그것을referred_by
로 이름을 바꿨다.related_name='referees'
를 추가했습니다 . 이것은 사용자가A
라면 추천 된 사용자B
및 사용자B
추천 된 사용자C
그리고D
그런 다음B.referred_by == A
그리고B.referees == (C, D)
:그러면 관리자에게 표시 할 다음과 같은 맞춤 양식을 만들 수 있습니다.
참고 : 이렇게하면 선택한 사용자가
referees
에 저장되지 않습니다 필드는 아직save
를 재정 의하여이를 수행해야합니다. 방법으로 양식을 작성했지만 이것이 시작되기를 바랍니다.