如何更改表格的HiddenInput值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改表格的HiddenInput值相关的知识,希望对你有一定的参考价值。
我正在尝试根据用户指定的对象的标题创建一个url。我以为可以在表格的clean_url
方法中执行此操作,但它似乎不起作用。
def clean_url(self):
url = re.sub(r'W+', '', str(self.cleaned_data['title']))
return url
如何在保存之前将form.url
数据添加到表单?
型号:
class Quiz(models.Model):
title = models.CharField(
verbose_name=_("Title"),
max_length=60,
unique=True,
blank=False)
receiver = models.ManyToManyField(
EmployeeType,
blank=True,
verbose_name='Employee Type',
related_name='quiz_receiver')
description = models.TextField(
verbose_name=_("Description"),
blank=True,
help_text=_("A description of the quiz"))
url = models.SlugField(
max_length=60,
blank=False,
unique=True,
help_text=_("e.g. 'blackjackshuffling'"),
verbose_name=_("User friendly URL"))
SlugField
通常不是在ModelForm
中指定,而是由模型构造的。可以利用slugify
function [Django-doc]:
slugify
但是也许更方便地使用class Quiz(models.Model):
# …
url = models.SlugField(
max_length=60,
blank=False,
editable=True,
unique=True,
help_text=_("e.g. 'blackjackshuffling'"),
verbose_name=_('User friendly URL')
)
def save(self, *args, **kwargs):
if self.pk is None:
base_url = url = slugify(self.title)
i = 0
while self._meta.model.objects.filter(url=url).exists():
url = f'{base_url}{i}'
i += 1
self.url = url
super().save(*args, **kwargs)
中的AutoSlugField
[readthedocs]。您可以使用以下方法将其安装在虚拟环境中:
AutoSlugField
然后您可以在模型中指定应在哪个字段中填充并让django-autoslug
package [readthedocs]处理其余逻辑:
django-autoslug
以上是关于如何更改表格的HiddenInput值的主要内容,如果未能解决你的问题,请参考以下文章
如何从模型类中隐藏 MVC 4 上的标签,[HiddenInput(DisplayValue =false)] 不起作用