【问题标题】:Data arrays in Django modelDjango模型中的数据数组
【发布时间】:2010-09-03 14:54:32
【问题描述】:

我刚开始使用 Django,想知道处理以下数据的最佳方法。我有数据集,它由许多我希望绘制的 x,y 坐标对组成。据我了解,Django 不直接在其模型中支持数字数组,那么处理这些的最佳方法是什么?现在我能想到的只是我下面的内容:

class DataSet(models.Model):
    set_name = models.CharField(max_length=100)

class DataPoint(models.Model):
    x = models.FloatField()
    y = models.FloatField()
    dataset = models.ForeignKey(DataSet)

这似乎有点奇怪,并且没有任何数据库或 django 经验,我不知道如何继续。我现在正在使用 postgresql,我相信它确实支持数组条目,但我不确定我是否准备好在 Django 中创建一个自定义字段。

【问题讨论】:

    标签: django postgresql django-models


    【解决方案1】:

    缺少自定义字段,您定义DataPoint 和DataSet 模型的想法似乎是可行的方法。如果数据点可能出现在多个数据集中,则应考虑将两者之间的关系更改为多对多字段。

    编写(通过测试)将两者结合起来的精简业务层也将有助于最大程度地减少考虑模型如何存储在数据库中的需要。

    【讨论】:

      【解决方案2】:

      您可以使用多对多模型关系。

      来自 django 文档:

      from django.db import models
      
      class Topping(models.Model):
          # ...
          pass
      
      class Pizza(models.Model):
          # ...
          toppings = models.ManyToManyField(Topping)
      

      更多信息: https://docs.djangoproject.com/en/2.1/topics/db/models/#many-to-many-relationships 例子: https://docs.djangoproject.com/en/2.1/topics/db/examples/many_to_many/

      【讨论】:

        猜你喜欢
        • 2017-04-02
        • 2022-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-14
        • 2023-04-05
        • 1970-01-01
        • 2019-03-18
        相关资源
        最近更新 更多