FieldError("relation에 여러 대상 필드가 있지만 단일 대상 필드만 요청했습니다.") 이 오류는 일반적으로 관련 필드에 액세스하려고 할 때 발생합니다. 개체에는 실제로 여러 개의 대상 필드가 있습니다.
예를 들어 'Author' 모델과 'Book' 모델이 있고 둘 사이에 다대다 관계가 있다고 가정해 보겠습니다. 이 오류는 `Author` 개체의 `book` 필드에 액세스하려고 시도하지만 연결된 개체가 실제로 여러 `Book` 개체와 연결된 경우 발생합니다.
이 문제를 해결하려면 여러 대상 필드에 액세스하는 방법을 사용하도록 코드를 변경해야 합니다. 예를 들어, `Author.book_set.all()`을 사용하여 `Author` 객체의 모든 `Book` 객체를 가져올 수 있습니다.
위 정보가 문제 해결에 도움이 되기를 바랍니다.
FieldError("관계에 여러 대상 필드가 있지만 단일 대상 필드만 요청했습니다.") 오류를 해결하려면 여러 대상 필드에 액세스하는 방법을 사용하도록 코드를 변경해야 합니다. 특히 다음 방법 중 하나를 사용할 수 있습니다.
- `관련_이름` 속성을 사용하여 관련 개체에 액세스하기 위한 사용자 정의 이름을 지정합니다. 예를 들어, 다대다 관계를 정의할 때 `관련_이름='books'`를 지정한 다음 `Author.books.all()`을 사용하여 `Author` 객체의 모든 `Book` 객체를 가져올 수 있습니다.
- 관련 개체에 액세스하려면 Django의 `관련_객체` 쿼리 세트를 사용하세요. 예를 들어, `Author.관련_objects.all()`을 사용하여 `Author` 객체의 모든 관련 객체를 가져올 수 있습니다.
- DjanGo의 `through` 매개변수를 사용하여 중간 모델을 생성하고 이 중간 모델을 사용하여 관련 개체에 액세스합니다. 예를 들어 중간 모델 `BookAuthor`를 정의했다고 가정하면 `Author.bookauthor_set.all()`을 사용하여 `Author` 객체의 모든 `BookAuthor` 객체를 가져온 다음 각 `BookAuthor` 객체에 액세스할 수 있습니다. book` 필드를 사용하여 해당 `Book` 개체를 가져옵니다.
무엇이 잘못되었는지 알아내기 위해 코드를 디버그해야 할 수도 있습니다. 다음은 도움이 될 수 있는 몇 가지 단계입니다.
- 관련 필드가 올바른지 확인하세요. 예를 들어 다대다 관계를 정의하는 경우 'ForeignKey' 또는 'OneToOneField' 대신 'ManyToManyField' 필드를 사용하여 관계를 나타내야 합니다.
- 관련 개체가 올바르게 설정되었는지 확인하세요. 예를 들어 다대다 관계가 있는 경우 각 모델 사이에 `ManyToManyField` 필드를 정의하고 다른 하나를 `관련_이름` 매개변수로 지정해야 합니다.
- 연관을 표현하기 위해 중간 모델을 사용하는 경우 중간 모델을 올바르게 정의하고 올바른 `through` 매개변수를 지정했는지 확인하세요.
- 맞춤 이름을 사용하여 관련 개체에 액세스하는 경우 '관련_이름' 매개변수를 올바르게 지정했는지 확인하세요.
- Django의 디버깅 tools을 사용하여 쿼리 세트가 올바른지 확인해보세요. 예를 들어 `.query` 속성을 사용하여 생성된 sql 문을 보거나 `print(list(qs))`를 사용하여 쿼리 세트에 포함된 개체를 볼 수 있습니다.
위 정보가 도움이 되기를 바랍니다.
다음은 'Book' 모델과 'Author' 모델이 있고 다대다 관계를 정의하여 여러 책에 여러 저자가 있을 수 있고 각 저자가 각 저자를 가질 수 있는 예입니다. 여러 권의 책을 쓸 수 있습니다:
class Author(models.Model): name = models.CharField(max_length=100) class Book(models.Model): title = models.CharField(max_length=100) authors = models.ManyToManyField(Author, related_name='books')
이제 다음을 통해 관련 객체에 액세스할 수 있습니다:
# 获取书的所有作者 book.authors.all() # 获取作者写的所有书 author.books.all()
관계 필드를 정의할 때 잘못된 필드 유형을 사용하는 등의 문제가 발생하는 경우(예: `ManyToManyField` 대신 `ForeignKey` 사용) "관계에 대상 필드가 여러 개 있습니다." 정보와 유사한 오류가 나타날 수 있습니다. . 이 경우 코드를 확인하여 올바른 필드 유형을 사용하고 있는지 확인해야 합니다.
잘못된 이름을 사용하는 등 관련 개체에 액세스하는 데 문제가 있는 경우(예: 저자 목록을 가져오기 위해 `book.authors.all()` 대신 `book.authors`를 사용하려고 시도하는 경우) 다음과 같은 메시지가 나타날 수 있습니다. "이 메서드는 서브클래스에 의해 구현되어야 합니다"와 유사한 오류 메시지가 나타납니다. 이 경우 연결에 액세스하기 위해 올바른 방법을 사용하고 있는지 코드를 확인해야 합니다. 죄송하지만 무엇을 요구하시는지 모르겠습니다. 계속 질문하시면 답변해 드리겠습니다.
위 내용은 解决方案:django 예외.FieldError(\'관계에 여러 대상 필드가 있지만 단일 대상 필드 \'\'만 요청되었습니다\')의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!