我定义了这个模型:
<script type="text/javascript">
$('.tip-btn).click(function(){
var divId = $(this).attr("check");
$('#'+divId).fadeToggle("slow");
});
</script>
和此序列化器:
class city (models.Model):
city_name = models.CharField(max_length=100)
state = models.ForeignKey(state,related_name='state', on_delete=models.CASCADE)
def __str__(self):
return self.city_name
如果我将状态添加到序列化器字段中,则会向我显示表的state_id,但我希望它向我显示state_name(状态表的另一个字段) 我找到了本教程:https://www.django-rest-framework.org/api-guide/relations/ 但此处父模型中显示子模型项, 我想在子模型中显示父名称(与本教程相反) 我该怎么办?
答案 0 :(得分:0)
这样定义您的序列化器:
class citySerializers(serializers.ModelSerializer):
state = serializers.SerializerMethodField()
class Meta:
model = city
fields = ('city_name', 'state')
def get_state(self, instance):
return instance.state.state_name
DRF documentation on SerializerMethodField
请记住,如果您尚未预取相关状态,则使用此方法将导致对数据库的附加查询以从状态表中获取state_name。