【问题标题】:Django ORM adds _id into JSON for ForeignKeysDjango ORM 为 ForeignKeys 添加 _id 到 JSON
【发布时间】:2016-10-07 01:34:32
【问题描述】:

在幕后,Django 将“_id”附加到字段名称以创建 它的数据库列名。

Django ORM在ForeignKeys中添加了_id,所以当我创建json格式时,列最后出现_id,如何去掉_id?

{
  "ModelID_id": 1,
  "ID": 1,
  "DataDefinitionID_id": 1
},

// JSON Builder
ModelDependecy_queryset = Modeldatadependency.objects.values().all() 
return Response({"ModelDataDependency": list(ModelDependecy_queryset)},200)

// Model file
class Modeldatadependency(models.Model):
    ID = models.AutoField(primary_key=True)
    ModelID = models.ForeignKey(Model, models.DO_NOTHING, db_column='ModelID', blank=True, null=True)
    DataDefinitionID = models.ForeignKey(Datadefinition, models.DO_NOTHING, db_column='DataDefinitionID', blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'ModelDataDependency'
        app_label = 'default'

【问题讨论】:

  • 你应该展示你正在做什么来创建这个 JSON。
  • 我已添加到问题中

标签: json django


【解决方案1】:

你可以添加一个方法来返回你需要的东西

class Modeldatadependency(models.Model):
    ModelID = models.ForeignKey(Model, blank=True, null=True)
    DataDefinitionID = models.ForeignKey(Datadefinition, blank=True, null=True)`enter code here`

    def get_json(self):
        return dict(
            ModelID =self.ModelID,
            ID =self.id, 
            DataDefinitionID =self.DataDefinitionID)

【讨论】:

  • 谢谢,但是我如何在我的代码中调用这个方法呢? ModelDependecy_queryset = Modeldatadependency.objects.values().all() return Response({"ModelDataDependency": list(ModelDependecy_queryset)},200)
  • 与任何其他模型方法一样。 ModelDependecy_queryset = Modeldatadependency.objects.all() return Response({"ModelDataDependency.get_json(): list(ModelDependecy_queryset)},200)
猜你喜欢
  • 1970-01-01
  • 2019-09-21
  • 2014-11-07
  • 1970-01-01
  • 2014-08-30
  • 2019-04-10
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多