Найти - Пользователи
Полная версия: вычисляемое поле в модели
Начало » Django » вычисляемое поле в модели
1
terrrible
Можно ли как-то реализовать такую штуку средствами 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 всегда содержало хронологически самую раннюю дату.
Спасибо.
inoks
Можно как то так:

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)
buddha
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
terrrible
inoks, спасибо, похоже подойдёт.
buddha, не понял как в моём случае эти присваивания могут помочь.
buddha
Мудрёно получается через связи делать. По моему лучше перестроить модель так, чтобы можно было обойтись именно этими параметрами. Переопределение метода сохранения это нормально, но может в следствии принести сложности.
Вам виднее по вашей задаче. Имейте просто ввиду=)
terrrible
buddha
Мудрёно получается через связи делать. По моему лучше перестроить модель так, чтобы можно было обойтись именно этими параметрами. Переопределение метода сохранения это нормально, но может в следствии принести сложности.Вам виднее по вашей задаче. Имейте просто ввиду

Спасибо) Про поля знаю, но к моей задаче не могу найти применение.
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