Django, 동일한 모델에 두 개의 외래 키 추가

공간 파는 사람

컨텍스트 테이블의 한 행을 컨텍스트 테이블의 다른 행과 연결하는 테이블이 있습니다. Django에서 두 개의 외래 키를 추가하려고하는데 관련 이름을 사용해야한다고 말합니다. 관련 이름에 대한 문서를 읽었지만 이해할 수 없습니다. 주석 처리 된 행과 함께 아래 작업 모델을 포함합니다. 다음에는 템플릿도 포함됩니다. 누구나 아래 코드를 수정할 수 있습니까?

model.py

class Relationship (models.Model):
    relationship_id = models.AutoField(primary_key=True)
    # context_id1 = models.IntegerField()
    context_id1 = models.ForeignKey(Context, db_column='context_id1', on_delete = models.PROTECT)
    context_id2 = models.IntegerField()
    # context_id2 = models.ForeignKey(Context, db_column='context_id2', on_delete = models.PROTECT)
    relationship = models.CharField(max_length = 50, blank=True, null=True)

주형

  {% for relationship in context.relationship_set.all %}
      Current Context:{{relationship.context_id1.number}} <br> # works
      Relationship:{{relationship.relationship}} <br> # works
      Related Context: {{relationship.context_id2.number}} # fails
  {% endfor %}
빌렘 반 온셈

related_name=…[장고 문서는] "역에서"당신의 관계의 이름입니다. 그래서 Contexta에서 Relationship. 여기에서 동일한 모델을 두 번 대상으로하기 때문에 둘 다라는 이름을 지정할 수 없습니다 relationship_set. 따라서 이러한 다른 related_names를 줄 수 있습니다 . 예를 들면 :

class Relationship(models.Model):
    id = models.AutoField(primary_key=True, db_name='relationship_id')
    context1 = models.ForeignKey(
        Context,
        db_column='context_id1',
        on_delete = models.PROTECT,
        related_name='relations_through1'
    )
    context1 = models.ForeignKey(
        Context,
        db_column='context_id1',
        on_delete = models.PROTECT,
        related_name='relations_through2'
    )
    relationship = models.CharField(max_length = 50, blank=True, null=True)

참고 : 일반적으로 Django는 접미사 _idForeignKey있는 "twin"필드를 자동으로 추가하므로 필드에 접미사 추가하지 않습니다 _id. 따라서 context1대신 이어야합니다 context_id1.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

동일한 외부 모델을 가리키는 두 개의 외래 키 필드가 있는 모델을 사용한 Django 집계?

두 개의 동일한 외래 키가있는 Django Inlineformset

동일한 테이블 / 모델을 가리키는 두 개의 외래 키

Django : 두 모델에 대한 외래 키

Django admin 인라인에는 동일한 모델에 대한 2개의 외래 키가 있습니다.

django에서 사용자 모델에 두 개의 외래 키를 추가할 수 없습니다.

Django : 동일한 모델의 다른 외래 키로 기본값을 사용하여 기존 모델에 새 외래 키 추가

Django : 모델의 동일한 속성에 여러 개의 외래 키가 저장 됨

동일한 외래 키 개체의 두 필드에 대한 Django 필터

Django에서 한 모델의 두 필드에 두 개의 외래 키를 어떻게 할당합니까?

외래 키 관계로 두 개의 django 모델을 동시에 편집하기위한 양식

Django : 모델의 사용자에 대한 두 개의 외래 키, 페이지를로드 한 사용자가 아닌 키 가져 오기

Django-외래 키가 두 개 이상인 모델

동일한 관계에 대해 두 개의 외래 키가있는 모델에 대한 연결을 작성하는 방법은 무엇입니까?

Django는 두 개의 외래 키로 두 개의 모델을 저장합니다.

두 개의 외래 키가있는 중간 모델 : 파일 구조?

동일한 테이블의 Django 모델 외래 키

MySQL : 동일한 테이블에 두 개의 외래 키 사용

두 개의 동일한 외래 키에 조인

동일한 클래스 Django의 두 외래 키

인라인이있는 Django 관리자, 2 개의 다른 모델에 대한 2 개의 외래 키가있는 1 개의 모델

저장 후 신호에 두 개의 외래 키가있는 모델에 삽입

동일한 테이블 및 동일한 외래 키에있는 두 개의 열

한 열에 두 개의 외래 키

Django-두 개체의 필드는 외래 키가 다른 경우에만 동일한 값을 가질 수 있습니다.

사전에 두 개의 동일한 키에 대한 값 추가

외래 키를 사용하여 Django 모델에 추가할 항목 수 제한

Django는 두 모델의 외래 키인 객체를 가져옵니다.

MySQL은 동일한 테이블에 외래 키를 두 개 이상 추가하지 않습니다.

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관