Найти - Пользователи
Полная версия: Покритикуйте правильность моделей
Начало » Django » Покритикуйте правильность моделей
1
al
Приветствую, сообщество!

Помогите правильно написать модели для следующего задания:
Имеется 6 групп стран. Каждая страна может относится к нескольким группам. Отвечать за свою группу будет координатор.
Идея создать таблицу продаж каждой страны. Каждый месяц будут поститься результаты продаж. Менеджер(представитель страны) будет добавлять результаты продаж. Эти результаты будут поститься не сразу, а после того как координатор подтвердит результаты менеджера. Отчет менеджера будет имееть следующий вид. У каждой страны будет свой перечень товаров состоящий из 7 элементов которые они будут продавать и за каждый из них они будут получать определенное количество очков. Причем одни и теже товары могут повторяться у каждой из стран.

Как мне подобные модели создать? Навоял следующее, но мне кажется что это не то:
class Cluster(models.Model):  
coordinator = models.ManyToManyField(User, blank=True, null=True, verbose_name=_('Coordinator'))
cluster = models.CharField(_('Cluster'), max_length=30, blank=True)

class Meta:
verbose_name = _('Cluster')
verbose_name_plural = _('Clusters')


class Country(models.Model):
salesmanager = models.ManyToManyField(User, blank=True, null=True, verbose_name=_('Salesmanager'))
country = models.CharField(_('Country'), max_length=30, blank=True)
cluster = models.ForeignKey(Cluster)
image = models.ImageField(_('Image'), blank=True, upload_to='images/flags/')

class Meta:
verbose_name = _('Country')
verbose_name_plural = _('Countries')


class Profile(models.Model):
user = AutoOneToOneField(User, related_name='profile', verbose_name=_('User'))
country = models.ForeignKey(Country)

class Meta:
verbose_name = _('Profile')
verbose_name_plural = _('Profiles')


class Item(models.Model):
name = models.CharField(_('Name'), max_length=200)
points = models.IntegerField(_('Points'), default=0)
cluster = models.ForeignKey(Cluster)

class Meta:
verbose_name = _('Item')
verbose_name_plural = _('Items')



class Report(models.Model):
user = models.ForeignKey(User)
date = models.DateTimeField(_('Date'), auto_now_add=True)
country = models.ForeignKey(Country)
item1 = models.CharField(_('Item1'), max_length=200)
points1 = models.IntegerField(_('Points1'), default=0)
item2 = models.CharField(_('Item2'), max_length=200)
points2 = models.IntegerField(_('Points2'), default=0)
item3 = models.CharField(_('Item3'), max_length=200)
points3 = models.IntegerField(_('Points3'), default=0)
item4 = models.CharField(_('Item4'), max_length=200)
points4 = models.IntegerField(_('Points4'), default=0)
item5 = models.CharField(_('Item5'), max_length=200)
points5 = models.IntegerField(_('Points5'), default=0)
item6 = models.CharField(_('Item6'), max_length=200)
points6 = models.IntegerField(_('Points6'), default=0)
item7 = models.CharField(_('Item7'), max_length=200)
points7 = models.IntegerField(_('Points7'), default=0)

class Meta:
verbose_name = _('Report')
verbose_name_plural = _('Reports')


class Result(models.Model):
date = models.DateTimeField(_('Date'), auto_now_add=True)
country = models.ForeignKey(Country)
points = models.IntegerField(_('Points'), default=0)

class Meta:
verbose_name = _('Result')
verbose_name_plural = _('Results')
Александр Кошелев
al
Навоял следующее, но мне кажется что это не то:
Что конкретно вам кажется?
al
Daevaorn, не могу понять как лучше быть с Item(перечнем товаров) и Report(отчетами менеджеров)
magasoft
Стоит взглянуть сюда: http://docs.djangoproject.com/en/1.1/topics/db/models/#extra-fields-on-many-to-many-relationships
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