Найти - Пользователи
Полная версия: Вызов Manager в Model
Начало » Django » Вызов Manager в Model
1
Aleshka
Есть 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)
Как вариант, использовать свой менеджер создал его как написано в инструкции но как его запустить на выполение в модели так и не понял.
Александр Кошелев
Aleshka
И в одной таблице в полях есть повторяющиеся записи
В какой таблице? Team?
Aleshka
но вот в ней и содержатся повторяющиеся поля не знаю как их можно убрать
Зачем убирать? Тогда вы лишите возможно занести в поле некоторые команды.
Aleshka
Daevaorn
В какой таблице? Team?
Да абсолютно верно, в команде Team. Поясню на примере, у меня есть команда, например Динамо М, которая участвует в кубке России и в в чемпионате России. И если я для каждого турнира буду водить команды заново, то в таблице Team. Это команда будет дублироваться несколько раз! И вот здесь возникает проблема, как в меню админки не переписывая её можно убрать дублирующие поля? Мне нужно чтобы сколько не было в команде Team повторяющихся команд она выводилась только один раз.
И еще один вопрос. Не понял я немного с менеждерами для моделей, есть менеджер который должен обработать какое-то поле например,
поле title класса Team?
Сделал я такой менеджер:
class GroupDistinctManager(models.Manager):
def get_query_set(self):
return super(GroupDistinctManager,self).get_query_set.distinct(), но как данный менеджер вызвать в модели, не пользуясь представлением?
Александр Кошелев
Aleshka
Поясню на примере, у меня есть команда, например Динамо М, которая участвует в кубке России и в в чемпионате России. И если я для каждого турнира буду водить команды заново, то в таблице Team. Это команда будет дублироваться несколько раз! И вот здесь возникает проблема, как в меню админки не переписывая её можно убрать дублирующие поля? Мне нужно чтобы сколько не было в команде Team повторяющихся команд она выводилась только один раз.
И еще один вопрос.
Так не заводите для каждого турнира новую команду. Ведь это одно и тоже Динамо М. играет в кубке и чемпионате, так зачем 2 команды заводить? Используйте одну. Вы не стой стороны проблему решаете.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB