Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 5, 2008 17:12:34

Aleshka
От:
Зарегистрирован: 2008-05-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов Manager в Model

Есть 2 таблицы, которые связаны ключем один ко многим. И в одной таблице в полях есть повторяющиеся записи. В админке при добавлении записи есть возможность выбрать значения, но вот в ней и содержатся повторяющиеся поля не знаю как их можно убрать. Поясню на примере:
Есть модель с такими таблицами:

class Team(models.Model):
title = models.CharField(max_length=100)
country = models.CharField(max_length=100)
points = models.IntegerField(max_length=3, editable=False, null=True, blank=True)
flag = models.ImageField(upload_to='teams', blank=True, null=True)
def __str__(self):
return "%s - %s" % self.country, self.title

class Match(models.Model):
group = models.ForeignKey(Group)
date = models.DateField()
city = models.CharField(max_length=100)
team_a = models.ForeignKey(Team, related_name='team_a')
team_b = models.ForeignKey(Team, related_name='team_b')
total_result = models.CharField(max_length=8)
first_half_result = models.CharField(max_length=8)
def __unicode__(self):
return '%s-%s (%s)' % str(self.team_a), str(self.team_b), str(self.date)
Как вариант, использовать свой менеджер создал его как написано в инструкции но как его запустить на выполение в модели так и не понял.



Офлайн

#2 Ноя. 5, 2008 18:10:21

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Вызов Manager в Model

Aleshka
И в одной таблице в полях есть повторяющиеся записи
В какой таблице? Team?
Aleshka
но вот в ней и содержатся повторяющиеся поля не знаю как их можно убрать
Зачем убирать? Тогда вы лишите возможно занести в поле некоторые команды.



Офлайн

#3 Ноя. 6, 2008 10:21:29

Aleshka
От:
Зарегистрирован: 2008-05-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Вызов Manager в Model

Daevaorn
В какой таблице? Team?
Да абсолютно верно, в команде Team. Поясню на примере, у меня есть команда, например Динамо М, которая участвует в кубке России и в в чемпионате России. И если я для каждого турнира буду водить команды заново, то в таблице Team. Это команда будет дублироваться несколько раз! И вот здесь возникает проблема, как в меню админки не переписывая её можно убрать дублирующие поля? Мне нужно чтобы сколько не было в команде Team повторяющихся команд она выводилась только один раз.
И еще один вопрос. Не понял я немного с менеждерами для моделей, есть менеджер который должен обработать какое-то поле например,
поле title класса Team?
Сделал я такой менеджер:
class GroupDistinctManager(models.Manager):
def get_query_set(self):
return super(GroupDistinctManager,self).get_query_set.distinct(), но как данный менеджер вызвать в модели, не пользуясь представлением?



Офлайн

#4 Ноя. 6, 2008 10:29:15

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Вызов Manager в Model

Aleshka
Поясню на примере, у меня есть команда, например Динамо М, которая участвует в кубке России и в в чемпионате России. И если я для каждого турнира буду водить команды заново, то в таблице Team. Это команда будет дублироваться несколько раз! И вот здесь возникает проблема, как в меню админки не переписывая её можно убрать дублирующие поля? Мне нужно чтобы сколько не было в команде Team повторяющихся команд она выводилась только один раз.
И еще один вопрос.
Так не заводите для каждого турнира новую команду. Ведь это одно и тоже Динамо М. играет в кубке и чемпионате, так зачем 2 команды заводить? Используйте одну. Вы не стой стороны проблему решаете.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version