如何更改表格的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值的主要内容,如果未能解决你的问题,请参考以下文章

如何更改片段中的主要活动变量

如何以编程方式更改表格单元格中单选按钮组的单选按钮?

如何更改片段的大小?

kotlin-从一个片段更改多个片段的小数位

如何从模型类中隐藏 MVC 4 上的标签,[HiddenInput(DisplayValue =false)] 不起作用

如何从活动中更改片段中视图的可见性