제한 사항에 직면했을 때 Django의 다양한 데이터베이스에 외래 키를 어떻게 구현합니까?
Django에서 서로 다른 데이터베이스에 걸쳐 외래 키를 구현하는 방법
Django에서 외래 키를 활용하는 것은 저장된 객체 간의 관계를 설정하는 데 중요합니다. 여러 데이터베이스에 걸쳐. 그러나 이 프로세스는 다양한 데이터베이스에 대한 모델이 포함될 때 문제가 될 수 있습니다.
데이터베이스 간 외래 키 제한 이해
Django는 현재 데이터베이스 간의 외래 키 관계를 금지합니다. 별도의 데이터베이스에 있는 모델. 이 제한은 데이터베이스 간 관계에 대한 지원이 없기 때문에 발생합니다. 모델을 분할하기 위해 데이터베이스 라우터를 사용하는 경우 외래 키 관계는 단일 데이터베이스 내로 제한되어야 합니다.
오류: 호환되지 않는 모델 할당
오류 코드에서 발생하는 문제는 "urls" 데이터베이스의 LinkModel 인스턴스를 기본 데이터베이스의 NewsModel 인스턴스에 할당하려는 시도에서 발생합니다. 이러한 모델은 서로 다른 데이터베이스에 속하므로 Django에서는 이 할당을 방지하는 오류가 발생합니다.
해결책: 수동 외래 키 할당
이 제한을 우회하려면 다음을 수행하세요. 사용자 지정 해결 방법을 구현합니다. NewsModel의 링크 필드를 통해 LinkModel 인스턴스를 직접 할당하는 대신 데이터베이스에서 외래 키 필드를 수동으로 설정합니다.
<code class="python">from django.db import connection # Retrieve the LinkModel instance from the database link = LinkModel.objects.using('urls').get(id=1) # Execute a raw SQL query to update the foreign key value in the default database with connection.cursor() as cursor: cursor.execute( "UPDATE news SET link_id = %s WHERE title = %s", [link.id, "test"] )</code>
이 접근 방식은 기본 데이터베이스의 외래 키 값을 수동으로 업데이트하여 뉴스 항목을 효과적으로 연결합니다. 원하는 LinkModel 인스턴스에 추가하세요.
위 내용은 제한 사항에 직면했을 때 Django의 다양한 데이터베이스에 외래 키를 어떻게 구현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?
