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
您可能需要为该模型定义要包括/排除的字段