Определение классовых отношений в Джанго - PullRequest
0 голосов
/ 10 апреля 2011

Я новичок в Django / Python, поэтому извините, если мой вопрос очевиден!

Я пытаюсь создать класс пользователя, и у каждого пользователя будет возможность выбрать (одну или несколько) спортивных дисциплин в качестве своего хобби.

Пока я определил все спортивные занятия в классе под названием Хобби:

class Hobbies(models.Model):
    sports_name = models.IntegerField()

и пользовательский класс:

class Profile(models.Model):
    user = models.ForeignKey(User, unique=True)
    gender = models.CharField(max_length=1,blank=True)

Я не знаю, как поступить, так как у меня нет опыта работы с django / Python.

Мне нужно создать своего рода массив в своем пользовательском классе, в котором я буду хранить все хобби, для которых "регистрируется" определенный пользователь.

Ответы [ 3 ]

1 голос
/ 10 апреля 2011

Добавьте поле «многие ко многим» в модель своего профиля, что позволяет создавать отношения между пользователями и хобби:

class Profile(models.Model):
  user = models.ForeignKey(User, unique=True)
  gender = models.CharField(max_length=1, blank=True)
  hobbies = models.ManyToManyField(Hobbies)

Затем вы можете получить список хобби пользователей, выполнив соответствующий поиск:

user = Profile.objects.get(pk=1)
hobbies = user.hobbies.all()

Подробнее: http://docs.djangoproject.com/en/dev/ref/models/fields/#manytomanyfield

0 голосов
/ 10 апреля 2011

Похоже на отношение M2M для меня.Вот как это сделать: http://docs.djangoproject.com/en/dev/topics/db/models/#many-to-many-relationships

0 голосов
/ 10 апреля 2011

Вопрос указывает на то, что вы вообще не имели опыта работы с реляционными базами данных.Поскольку Django моделирует (почти) непосредственное сопоставление с базовыми отношениями с БД, я бы предложил погрузиться в некоторый учебник по базе данных (не зависящий от фреймворка и языка) // book.

Для этого проверьте этот вопрос переполнения стека .Затем выберите одну из СУБД (с PostgreSQL все в порядке, с открытым исходным кодом, бесплатно) и немного поэкспериментируйте, затем вернитесь к Django.

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