在将表单数据提交到数据库之前,请更改视图django中的一些字段数据
您好,我的表单是这样的,当我提交它时,它会转到“我附加的视图”,例如,我想在提交之前在名称字段中的字符串之间添加破折号。那么,在我看来,我怎样才能做到这一点呢 Form.html 当我提交的时候,它就进入了那个视图 View.py在将表单数据提交到数据库之前,请更改视图django中的一些字段数据,django,django-forms,django-templates,django-views,Django,Django Forms,Django Templates,Django Views,您好,我的表单是这样的,当我提交它时,它会转到“我附加的视图”,例如,我想在提交之前在名称字段中的字符串之间添加破折号。那么,在我看来,我怎样才能做到这一点呢 Form.html 当我提交的时候,它就进入了那个视图 View.py 我得到的是'obj=self.form.save(commit=False)然后name=obj.name'我得到的是'obj=self.form.save(commit=False)然后name=obj.name' name = models.CharField(m
我得到的是'obj=self.form.save(commit=False)然后name=obj.name'我得到的是'obj=self.form.save(commit=False)然后name=obj.name'
name = models.CharField(max_length=255, help_text='The name of this map.')
subtitle = models.CharField(max_length=255, null=True, blank=True,
help_text='If(unbolded)')
def save_form_if_appropriate(self, attr):
if self.request.method == 'POST':
if self.site_acl >= self.acl.ADMIN or self.is_modifying_self(attr):
if self.form.is_valid():
if attr == 'user':
obj = self.form.save(commit=False)
# this way we can keep record of the users creator.
obj.parent_id = self.request.user
if hasattr(obj, 'user_type') and obj.user_type != 'pro':
obj.sub_users_allowed = 0
obj.save()
else:
self.form.save()
messages.success(self.request, 'Thing saved.')
return True
else:
messages.warning(self.request, self.form.errors)
# messages.warning(self.request, 'Thing was invalid, and couldn\'t be saved.')
else:
messages.warning(self.request, 'You don\t have permission to save that thing.')
return False
def save_form_if_appropriate(self, attr):
if not self.request.method == 'POST':
return False
if not (self.site_acl >= self.acl.ADMIN or self.is_modifying_self(attr)):
messages.warning(self.request, 'You don\t have permission to save that thing.')
return False
if not self.form.is_valid():
messages.warning(self.request, self.form.errors)
return False
obj = self.form.save(commit=False)
if attr == 'user':
# this way we can keep record of the users creator.
obj.parent_id = self.request.user
if hasattr(obj, 'user_type') and obj.user_type != 'pro':
obj.sub_users_allowed = 0
# Here you can do whatever you want on the object
# For example joining string in names
obj.name = '-'.join(obj.name.split(' '))
obj.save()
messages.success(self.request, 'Thing saved.')
return True