0
我有兩個Django模型(簡體):Django的REST框架:部分更新(補丁)鍵和外鍵
class Author(models.Model):
name = models.CharField()
class Book(models.Model):
author = models.ForeignKey(Author)
title = models.CharField()
兩個模型我使用基本ModelSerializers:
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = models.Author
fields = '__all__'
[similar code for BookSerializer]
最後,我VE實現基本ModelViewSets:
class AuthorViewSet(viewsets.ModelViewSet):
queryset = models.Author.objects.all()
serializer_class = serializers.AuthorSerializer
[similar code for BookViewSet]
現在,我部分地更新現有的書,留下了「作者」,因爲它不應該改變。
PATCH /api/v1/book/1/
JSON data: {'title': 'Lord of the Flies'}
我收到此錯誤:
HTTP 400 Bad Request
Allow: GET, PUT, PATCH, DELETE, OPTIONS
Content-Type: application/json
Vary: Accept
{
"author": [
"This field is required."
]
}
我認爲這事做的事實,「作者」是一個FK。然而,我希望DRF通過保持Book對象的關係並更新標題來解決這個問題。
我無法找到有關此內容的文檔或其他地方的網站上的任何內容。我肯定錯過了什麼?
我使用補丁,也就是那種點...... – Rik
那麼你可能在你的代碼的東西,或者你沒有粘貼,防止這種情況發生。我不記得我在使用補丁時看到過這個。 – Linovia
你說得對。事實證明,在我編寫的混合視圖中存在一個錯誤。 – Rik