如果存在关系,Django Rest Framework将返回True

时间:2016-09-21 13:22:15

标签: python django django-rest-framework

我有两个问题。如果存在关系,我怎么能回归呢?比如我也有帖子模型和评论模型,评论有foreginKey发布。现在经过序列化后,我想要这样的东西

body {
background-color: #789;
font-family: georgia, serif;
font-size: 13px;
}

#content {
display: block;
width: 812px;
margin: 40px auto 10px;
padding: 10px;
background-color: #FFF;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
border-radius: 6px;
border:2px solid black;
-moz-box-shadow: 0 0 14px #123;
-webkit-box-shadow: 0 0 14px #123;
box-shadow: 0 0 14px #123;
}
h2,p {
margin: 0 auto 14px;
text-align: center;
}
ul {
display: block;
clear: left;
height: 82px;
width: 812px;
margin: 0 auto;
padding: 0;
list-style: none;
background-color: #FFF;
text-align: center;
border: 1px solid black;
border-top: 0;
border-bottom: 2px solid black;
}
li {
position: relative;
float: left;
margin: 0;
padding: 20px 2px 2px;
border-left: 1px solid black;
border-right: 1px solid black;
width: 110px;
height: 60px;
overflow: hidden;
background-color: white;
}
li:hover {
background-color: #FCB;
z-index: 1;
-moz-box-shadow: 0 0 10px #789;
-webkit-box-shadow: 0 0 10px #789;
box-shadow: 0 0 10px #789;
}
.weekdays {
height: 20px;
border-top: 2px solid black;
}
.weekdays li {
height: 16px;
padding: 2px 2px;
background-color: #BCF;
}
.fill {
background-color: #BCD;
}
.weekdays li:hover,li.fill:hover {
background-color: #BCD;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
.weekdays li:hover,.today {
background-color: #BCF;
}
li strong {
position: absolute;
top: 2px;
right: 2px;
}
li a {
position: relative;
display: block;
border: 1px dotted black;
margin: 2px;
padding: 2px;
font-size: 11px;
background-color: #DEF;
text-align: left;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
border-radius: 6px;
z-index: 1;
text-decoration: none;
color: black;
font-weight: bold;
font-style: italic;
}
li a:hover {
background-color: #BCF;
z-index: 2;
-moz-box-shadow: 0 0 6px #789;
-webkit-box-shadow: 0 0 6px #789;
box-shadow: 0 0 6px #789;
}

我的第二个问题是如何在模型关系中重命名字段名称?我们再次发帖和评论。在评论模型中,我有foregin密钥发布像

{
id: 2
content: "My first post!"
has-comments: True
}

现在,当我添加新评论时,我使用{post:postIdHere}发送JSON数据。是否可以仅在django模型中的drf中将post更改为postId?

我希望你理解我:) 最好的Redgards, Sierran。

1 个答案:

答案 0 :(得分:1)

我能提出的最接近的事情是自定义has_comments字段(而非has-comments),在序列化程序中使用此字段:

from rest_framework import serializers

class YourSerializer(Either Serializer or ModelSerializer...):
    has_comments = serializers.SerializerMethodField()
    @staticmethod
    def get_has_comments(instance):
        # Choose whichever one works for you.
        # You did not specify some model names, so I am just making stuff up.
        return instance.post_set.exists()
        return Comment.objects.filter(post_id=instance.id).exists()

您可能还需要在序列化程序的Meta类中指定该字段。第一次运行时,框架会告诉您具体方法。