django表单未按预期更新

django表单未按预期更新,django,django-models,django-forms,Django,Django Models,Django Forms,这是我的模型: class Browser(models.Model): profile_name = models.CharField(max_length=400) browser_type = ( ('fr', 'Firefox'), ('ch', 'Chrome'), ('op', 'Opera'), ('ot', 'Other'), ) browser_name = models.CharF

这是我的模型:

class Browser(models.Model):
    profile_name = models.CharField(max_length=400)
    browser_type = (
        ('fr', 'Firefox'),
        ('ch', 'Chrome'),
        ('op', 'Opera'),
        ('ot', 'Other'),
    )
    browser_name = models.CharField(choices=browser_type, max_length=2)
    device_name = models.CharField(max_length=400)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)


class Bookmark(models.Model):
    browser = models.ForeignKey(Browser, on_delete=models.CASCADE, null=True, blank=True)
    title = models.TextField()
    url = models.TextField()
    iv = models.TextField()
    salt = models.TextField()
    iteration = models.IntegerField(default=1500)
    tags = TaggableManager()
我只想更新某些字段,所以这里是modelform

class BookmarkFormEdit(ModelForm):
    class Meta:
        model = Browser
        exclude = ('tags', 'browser_name', 'device_name', 'profile_name')
但我的问题是,值没有按预期更新。以下是视图:

def bookmark_edit(request, pk=None):
    if request.method == 'POST':
        bookmark = Bookmark.objects.get(pk=pk)
        frm = BookmarkFormEdit(request.POST, instance=bookmark)
        print(request.POST.get('iteration')) // printing correct value from front-end
        if frm.is_valid():
            x = frm.save()
            print(x.iteration) // not saving the new value !
            return JsonResponse({'status': 'created'})
        else:
            return JsonResponse({'error': frm.errors})
    return render(request, 'bookmark_edit.html', {'pk': pk})

表单中的
模型
定义不正确。您应该使用
书签
模型,而不是
浏览器

class BookmarkFormEdit(ModelForm):
    class Meta:
        model = Bookmark
您可能需要为该模型定义要包括/排除的字段