0
我jush具有兩個字段一個車型,一個是後,花葯是有關Django的用戶model.like這是一個外鍵:如何篩選在Django的REST框架多個串行
from django.contrib.auth.models import User
class Post(models.Model):
post = models.CharField(max_length=20)
author = models.ForeignKey(User, related_name='posts')
現在我definde一個用戶序列化器約束郵政,就像這樣:
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('id', 'post', 'author')
class UserSerialzier(serializers.ModelSerializer):
posts = PostSerializer()
class Meta:
model = get_user_model()
fields = ('id', 'username', 'snippets', 'posts')
我只想返回一個包含用戶數據和發佈數據的json。但是,我希望得到這個職位數據,由條件,不就是過濾所有的POST數據,我的看法是這樣的:
class UserDetail(generics.RetrieveAPIView):
serializer_class = HomeSerializer
def get_queryset(self):
post_set = self.request.user.posts.filter(post='python')
query_set = User.objects.filter(posts=post_set, username='admin')
return query_set
我希望得到的結果是:
{
"id": 1,
"username": "rsj217",
"posts": [
{
"id": 1,
"post": "python",
"author": {
"id": 1,
"username": "rsj217",
}
},
{
"id": 2,
"post": "python",
"author": {
"id": 1,
"username": "rsj217",
}
}
]
}
但實際上,我得到這樣的結果:
{
"id": 1,
"username": "rsj217",
"posts": [
{
"id": 1,
"post": "python",
"author": {
"id": 1,
"username": "rsj217",
}
},
{
"id": 2,
"post": "python",
"author": {
"id": 1,
"username": "rsj217",
}
},
{
"id": 3,
"post": "ruby",
"author": {
"id": 1,
"username": "rsj217",
}
}
]
}
我無法過濾後欄「紅寶石」? ,我不知道去哪裏
我的模型是'author = models.ForeignKey(User,related_name ='posts')','related_name'是'posts'。當我更改post_set時,它不起作用。 – user3336385 2014-09-04 01:48:04