Изменение в django моделях
Столкнулся с задачей которая поставила меня в тупик. Есть два класса:
class Printer(Product):
printerModel = models.ForeignKey(PrinterModel, models.CASCADE, verbose_name='Модель принтера')
name = models.CharField(max_length=20, verbose_name='Имя принтера')
ip = models.CharField(max_length=15, verbose_name='Ip адрес')
status = models.ForeignKey(PrinterStatus,models.CASCADE, verbose_name='Статус принтера', blank=True, null=True)
class Meta:
verbose_name = 'Принетер'
verbose_name_plural = 'Принтеры'
db_table = 'Printer'
def __str__(self):
return self.serialNumber
class PrinterScheduler(Scheduler):
uuid = models.PositiveSmallIntegerField(verbose_name='Номер заявки', default=random_number)
printer = models.ForeignKey(Printer, models.CASCADE, verbose_name='Принтер')
printerStatus = models.ForeignKey(PrinterStatus, models.CASCADE, verbose_name='Статус принтера')
location = models.ForeignKey(Room, models.CASCADE, verbose_name='Место расположение', blank=True, null=True)
class Meta:
verbose_name = 'Журнал принтера'
verbose_name_plural = 'Журналы принтеров'
db_table = 'PrinterSheduler'
def __str__(self):
return str(self.uuid)
Необходимо что бы при изменении скажем статуса в классе Printer создавалась запись в "Журнале"(PrinterScheduler). Каким образом это можно реализовать? Если можно то в формах а не в админке.
Во что пытался сделать сам
Форме уже сделал
class PrinterUpdateForm(forms.ModelForm):
class Meta:
model = Printer
fields = ('status',)
widgets = {
'status': forms.Select(attrs={'class': 'form-control'}),
}
Вот view файл
class PrinterUpdate(UpdateView):
model = Printer
template_name = 'printers/printerStatusUpdate.html'
context_object_name = 'pu'
form_class = PrinterUpdateForm
Возможно использую не тот класс для реализации модели?
Подскажите пожалуйста реализацию?