Уведомления

Группа в Telegram: @pythonsu

#1 Март 28, 2013 16:07:09

terrrible
Зарегистрирован: 2013-02-26
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

вычисляемое поле в модели

Можно ли как-то реализовать такую штуку средствами django?
Есть две модели, например:

class Course(models.Model):
   title = models.CharField(max_length=100)
   start_date = models.DateField(blank=True, null=True)
class Course_event(models.Model):
   title = models.ForeignKey(Course)
   event_date = models.DateField(blank=True, null=True)

Можно ли какими-то средствами выразить связь: в поле start_date внешний ключ к самому раннему по хронологии значению event_date? Простыми словами, нужно чтобы start_date всегда содержало хронологически самую раннюю дату.
Спасибо.

Отредактировано terrrible (Март 28, 2013 16:08:06)

Офлайн

#2 Март 28, 2013 23:11:25

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

вычисляемое поле в модели

Можно как то так:

class Course_event(models.Model):
	
	title = models.ForeignKey(Course)
	event_date = models.DateField(blank=True, null=True)
	def save(self, *args, **kwargs):
		course = self.title
		if course.start_date > self.event_date:
			course.start_date = self.event_date
			course.save()
		super(Course_event, self).save(*args, **kwargs)

Офлайн

#3 Март 29, 2013 00:22:55

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

вычисляемое поле в модели

class Course(models.Model):
    title = models.CharField(max_length=100)
    create_date = models.CharField(blank=True, null=True, auto_now_add=True) # параметр присваивает текущую дату автоматически при создании
    start_date = models.DateField(blank=True, null=True, auto_now=True) # параметр присваивает текущую дату автоматически при каждом сохранении
class Course_event(models.Model):
    title = models.ForeignKey(Course)
    event_date = models.DateField(blank=True, null=True)

https://docs.djangoproject.com/en/1.5/ref/models/fields/#datefield

Офлайн

#4 Март 29, 2013 10:56:57

terrrible
Зарегистрирован: 2013-02-26
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

вычисляемое поле в модели

inoks, спасибо, похоже подойдёт.
buddha, не понял как в моём случае эти присваивания могут помочь.

Офлайн

#5 Март 29, 2013 11:17:57

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

вычисляемое поле в модели

Мудрёно получается через связи делать. По моему лучше перестроить модель так, чтобы можно было обойтись именно этими параметрами. Переопределение метода сохранения это нормально, но может в следствии принести сложности.
Вам виднее по вашей задаче. Имейте просто ввиду=)

Офлайн

#6 Март 29, 2013 11:59:56

terrrible
Зарегистрирован: 2013-02-26
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

вычисляемое поле в модели

buddha
Мудрёно получается через связи делать. По моему лучше перестроить модель так, чтобы можно было обойтись именно этими параметрами. Переопределение метода сохранения это нормально, но может в следствии принести сложности.Вам виднее по вашей задаче. Имейте просто ввиду

Спасибо) Про поля знаю, но к моей задаче не могу найти применение.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version