Есть моделька с уникальным полем link:
class BookMark(models.Model): category = models.ForeignKey(BookMarkCategory, verbose_name=('Category')) description = models.TextField(_('Description'), blank=True) link = models.CharField(_('Link'), unique=True, max_length=150) # вот это поле priority = models.IntegerField(_('Priority')) looked_through = models.BooleanField(_('Looked trough')) publick = models.BooleanField(_('Public'))
При редактировании этой модели на страничке не получается её обновить(сохранить). Валидация формы выдает ошибку, что такое поле уже существует “Book mark with this Link already exists”.
В функции представление сделал по документации:
def edit_bookmark(request, id): bookmark_obj = BookMark.objects.get(pk=id) if request.POST: form = BookMarkForm(request.POST, instance=bookmark_obj) # вот вставил экземпляр if form.is_valid(): # а обновлять не желает form.save() return redirect('show_bookmarks_list') else: form = BookMarkForm() form.initial = bookmark_obj.get_fields_dict() return render(request, 'mybookmark/create_bookmark.html', dict(form=form))
Неужели метод form.save() не умеет обновлять уникальные поля?