回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我一直在寻找并跟踪Django Rest的官方文档<a href="http://www.django-rest-framework.org/api-guide/relations/" rel="nofollow">here</a>,并试图以此为基础建立我的方法,但我使用的是一对一的关系。在</p>
<p>但是,当我在browsable接口中添加时,它不会在嵌套的文本字段中获取值,并告诉我它不能为null。我试着在这里搜索,但是找不到任何能让一段感情像我想要的那样工作的东西。我是REST框架的新手,我真的很困惑。谢谢!在</p>
<p>基本上,每个动词都需要有一个过去时宾语,它有这三个字段(为了测试,更多,甚至是另一层嵌套,稍后会添加)。我只是不能让他们用可浏览的API添加。在</p>
<p>在模型.py公司名称:</p>
<pre><code>from django.db import models
class Verb(models.Model):
verb = models.TextField()
verbal_noun = models.TextField()
verbal_adjective = models.TextField()
present = models.TextField()
future = models.TextField()
habitual_present = models.TextField()
conditional = models.TextField()
past_habitual = models.TextField()
past_subjunctive = models.TextField()
present_subjunctive = models.TextField()
imperative = models.TextField()
class Past(models.Model):
verb = models.OneToOneField(Verb)
first_singular = models.TextField()
second_singular = models.TextField()
third_singular = models.TextField()
</code></pre>
<p>在序列化程序.py公司名称:</p>
^{pr2}$
<p>原始数据输入:</p>
<pre><code>{
"verb": "test",
"verbal_noun": "test",
"verbal_adjective": "test",
"past": {
"first_singular": "test1",
"second_singular": "test2",
"third_singular": "test3"
},
"present": "test",
"future": "test",
"habitual_present": "test",
"conditional": "test",
"past_habitual": "test",
"past_subjunctive": "test",
"present_subjunctive": "test",
"imperative": "test"
}
</code></pre>
<p>在视图.py在</p>
<pre><code>from conjugations.models import Verb
from conjugations.serializers import VerbSerializer
from rest_framework import generics, permissions
class VerbList(generics.ListCreateAPIView):
queryset = Verb.objects.all()
serializer_class = VerbSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
class VerbDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Verb.objects.all()
serializer_class = VerbSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
</code></pre>
<p>在网址.py在</p>
<pre><code>from django.conf.urls import url
from rest_framework.urlpatterns import format_suffix_patterns
from conjugations import views
urlpatterns = [
url(r'^verbs/$', views.VerbList.as_view()),
url(r'^verbs/(?P<pk>[0-9]+)/$', views.VerbDetail.as_view()),
]
urlpatterns = format_suffix_patterns(urlpatterns)
</code></pre>
<p>错误:</p>
<pre><code>File "/home/Projects/Python/virtualenvs/remnigh/lib/python3.5/site-packages/rest_framework/mixins.py", line 26, in perform_create
serializer.save()
File "/home/Projects/Python/virtualenvs/remnigh/lib/python3.5/site-packages/rest_framework/serializers.py", line 191, in save
self.instance = self.create(validated_data)
File "/home/Projects/Python/reimnigh-test/reimnigh/conjugations/serializers.py", line 19, in create
past_data = validated_data.pop('past')
KeyError: 'past'
</code></pre>