Как наиболее эффективно сохранить список в моделях Django? - PullRequest
116 голосов
/ 10 июля 2009

В настоящее время в моем коде много объектов Python, подобных следующему:

class MyClass():
  def __init__(self, name, friends):
      self.myName = name
      self.myFriends = [str(x) for x in friends]

Теперь я хочу превратить это в модель Django, где self.myName - это строковое поле, а self.myFriends - список строк.

from django.db import models

class myDjangoModelClass():
    myName = models.CharField(max_length=64)
    myFriends = ??? # what goes here?

Поскольку список является такой распространенной структурой данных в python, я ожидал, что для него будет поле модели Django. Я знаю, что могу использовать отношения ManyToMany или OneToMany, но я надеялся избежать этой дополнительной косвенности в коде.

Edit:

Я добавил этот связанный вопрос , который может оказаться полезным для людей.

Ответы [ 11 ]

1 голос
/ 11 июля 2009

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

...