Форум сайта python.su
Уважаемые подскажите, чего то я не до понимаю.
В документации написано, что при вызове методе save() если такой primary key уже существует, то метод обновит такую запись, а не добавит новую. Получается я что-то делаю не так, раз моими записи в Postgre не обновляется.
models.py
class Sheduler(models.Model): job_id = models.OneToOneField(Jobs, primary_key=True, unique=True, db_column="job_id") Mo = models.ForeignKey(TypeBackup, related_name="Job_in_Mon", default=0, verbose_name="Пн", db_column="Mo") Tu = models.ForeignKey(TypeBackup, related_name="Job_in_Tue", default=0, verbose_name="Вт", db_column="Tu") We = models.ForeignKey(TypeBackup, related_name="Job_in_Wen", default=0, verbose_name="Ср", db_column="We") Th = models.ForeignKey(TypeBackup, related_name="Job_in_Thu", default=0, verbose_name="Чт", db_column="Th") Fr = models.ForeignKey(TypeBackup, related_name="Job_in_Fri", default=0, verbose_name="Пт", db_column="Fr") Sa = models.ForeignKey(TypeBackup, related_name="Job_in_Sat", default=0, verbose_name="Сб", db_column="Sa") Su = models.ForeignKey(TypeBackup, related_name="Job_in_Sun", default=0, verbose_name="Вс", db_column="Su")
class CreateJobSheduler(ModelForm): class Meta: model = Sheduler fields = "__all__"
def addtaskinshedule(request): if request.POST: form = CreateJobSheduler(request.POST) if form.is_valid(): form.save() return redirect('/jobs/')
Офлайн
Тут все просто, если у form.instanse есть id, то объект обновляетcя, если нет - создается.
Если вы хотите изменить уже существующий объект, то вы разумеется знаете его id (ну а по какому еще критерию вы собираетесь строить запрос на обновление?). Айдишник должен попасть в форму, то есть должен присутствовать в запросе.
Офлайн