Массивы данных в модели Django - PullRequest
4 голосов
/ 03 сентября 2010

Я только начинаю с 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.

Ответы [ 2 ]

3 голосов
/ 03 сентября 2010

Если не считать пользовательского поля, ваша идея определения моделей DataPoint и DataSet кажется подходящей.Вы должны рассмотреть вопрос об изменении отношения между двумя полями «многие ко многим», если существует вероятность появления точки данных в более чем одном наборе данных.

Это также помогло бы написать (с тестами) тонкий бизнес-уровень, объединяющий эти два понятия, чтобы минимизировать необходимость думать о том, как модели хранятся в базе данных.

0 голосов
/ 29 ноября 2018

Вы можете использовать отношение модели «многие ко многим».

Из документации 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...