【发布时间】:2018-04-04 06:49:58
【问题描述】:
我正在通过 django 表单向我的 Django Rest Framework api 提交一个 POST 请求。
这是我的表单的 sn-p:
<form action="{% url 'entry-list' %}" method="POST" class="form" role="form">
{% csrf_token %}
{{form.as_p}}
<div class = "form-group">
<button type="submit" class="save btn btn-default btn-block">Save</button>
</div>
views.py:
class entry_ViewSet(viewsets.ModelViewSet):
queryset = Entry.objects.all()
serializer_class= EntrySerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,IsOwnerOrReadOnly,)
def perform_create(self, serializer):
serializer.partial = True
serializer.save(created_by=self.request.user)
我正在成功进行 POST(并且项目是在数据库中创建的),但是一旦我保存,我就会转到 URL /api/entry/,它显示了我的带有 Markdown 的 api。我想让它回到特定的网址。
如果成功,有没有办法自定义POST 重定向到的位置?
添加序列化器:
class EntrySerializer(serializers.ModelSerializer):
created_by = serializers.ReadOnlyField(source='created_by.username')
class Meta:
model = Entry
fields = '__all__'
def __init__(self, *args, **kwargs):
super(EntrySerializer, self).__init__(*args, **kwargs)
for x in self.fields:
self.fields[x].required = False
【问题讨论】:
-
你能分享你的
EntrySerializer吗? -
编辑添加序列化程序
标签: django django-forms django-rest-framework