![](/img/trans.png)
[英]How to POST data from a multiple select box in Django Rest Framework
[英]How to add comment box and post form to django rest framework
我按照django rest框架教程創建了一個網站( http://192.241.153.25:8000 )
我已經完成了登錄部分和帖子的連接,但是我不知道如何為單個帖子放置一個發布表單和評論框。
這是我嘗試過的
html
<form id="post_form" method="post" action="">
<input type="text" name="title" placeholder="Username">
<input type="text" name="content" placeholder="content">
<button class="ladda-button button-primary login_button" ng-click="vm.submit()"/><span class="ladda-label">submit</span></button>
</form>
jQuery的
$('#post_form').on('submit', function(e) { e.preventDefault()
$.ajax({
type:"POST",
url: '/api/posts/create/',
data:$('#post_form').serialize(),
error: function(response){
alert('Not authorized.'); // Or something in a message DIV
},
success: function(response){
console.log(response);
$('.login_bar').html(response)
$('.login_bar').html(response)
$('#logout_form').toggleClass(show)
// do something with response
}
});
});
這是我的API。
http://192.241.153.25:8000/api/posts/create/
有人可以幫我嗎?
看這個例子:
models.py
class Post(models.Model):
title = models.CharField(max_length=500)
body = models.TextField()
def __str__(self):
return self.title
class Comment(models.Model):
post = models.ForeignKey(Post)
text = models.TextField()
author = models.CharField(max_length=100)
def __str__(self):
return "[%s] %s" % (self.author, self.text)
serializers.py
from .models import Post, Comment
from rest_framework import serializers
class CommentSerializer(serializers.ModelSerializer):
class Meta:
model = Comment
fields = ('text', 'author', 'post')
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('title', 'body', 'comment_set')
views.py
from rest_framework import viewsets
from rest_framework.permissions import AllowAny
from .models import Post, Comment
from .serializers import CommentSerializer, PostSerializer
class PostViewSet(viewsets.ModelViewSet):
serializer_class = PostSerializer
permission_classes = [AllowAny]
queryset = Post.objects.all()
class CommentViewSet(viewsets.ModelViewSet):
serializer_class = CommentSerializer
permission_classes = [AllowAny]
queryset = Comment.objects.all()
urls.py
from django.conf.urls import url, include
from rest_framework import routers
from .views import PostViewSet, CommentViewSet
router = routers.DefaultRouter()
router.register(r'posts', PostViewSet)
router.register(r'comments', CommentViewSet)
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
將JSON格式的POST請求發送到http://127.0.0.1/comments/
,內容如下 :
{"author":"Jerry", "text": "Nice post!", "post": 1}
在這種情況下,為ID = 1的帖子創建新評論
這可能對您有用:views.py:-
def adComment(request):
print request
if request.method == 'POST':
form = CommentForm(request.POST) #Validate your data with form.
if form.is_valid():
instance = form.save(commit=False)
instance.title = form.cleaned_data['username']
instance.comments = form.cleaned_data['content']
instance.save() #Will save your data if valid.
data = {'success':True,'msg':"Store comment's data successfully"}
return Response(data)
else:
data = {'success':False,'msg':'Error in storing comments'}
return Response(data)
表格
from django.forms import ModelForm
from models import commentData
class CommentForm(ModelForm):
class Meta:
model = commentData #Your model name created to store comment's data
fields = [
"username",
"content",
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.