gpt4 book ai didi

python - 如何使django脆皮形式隐藏特定字段?

转载 作者:行者123 更新时间:2023-12-04 18:04:09 25 4
gpt4 key购买 nike

我正在尝试制作我的 date_modified自从我通过后,字段被隐藏 datetime.now定义参数 date_modified模型中的字段。
model.py

class Guide(models.Model):
name = models.CharField(max_length=50)
sno = models.CharField(max_length=50)
date_created = models.DateTimeField(default=datetime.now, blank=True)
date_modified = models.DateTimeField(default=datetime.now, blank=True)

def __unicode__(self):
return unicode(self.name)
views.py
class GuideFormUpdateView(UpdateView):
model = Guide
fields = ['name', 'sno', 'date_modified']
template_name_suffix = '_update_form'
success_url = reverse_lazy('Guides')

对应表格 forms.py好像
<form role="form" method="POST" action="{% url 'Guideform-edit' object.pk %}"
class="post-form form-horizontal" enctype="multipart/form-data">{% csrf_token %}
{{ form|crispy }}
<button type="submit" value="Upload" class="save btn btn-default btn-primary center-block">Update</button>

</form>

此表单显示 date_modified field 。但是我不想在前端使用这个字段,而是希望模型或 db_table 中这个字段的值应该得到更新。我知道如何在 jquery 中隐藏这个特定字段,但我不想接触那些 js 工具。有什么办法可以制作 crispy排除该特定字段,如 {{ form|crispy|exclude:date_modified }} ..

最佳答案

而不是使用您的 UpdateView 的通用表单将隐式使用,创建您的自定义表单。并在您的自定义表单中更改 date_modified 的小部件 field 。

在你的 forms.py 中

from django.forms import ModelForm, HiddenInput
class GuideForm(ModelForm):
def __init__(self, *args, **kwargs):
super(GuideForm, self).__init__(*args, **kwargs)
self.fields['date_modified'].widget = HiddenInput()

class Meta:
fields = ('name', 'sno', 'date_modified', )
model = models.Guide

在你的 views.py 中
class GuideFormUpdateView(UpdateView):
model = Guide
form_class = forms.GuideForm
template_name_suffix = '_update_form'
success_url = reverse_lazy('Guides')

自动更新 date_modified无论何时更新记录,都需要使用属性 auto_nowauto_now_add而不是 default .见 Docs .所以你的模型将是
class Guide(models.Model):
name = models.CharField(max_length=50)
sno = models.CharField(max_length=50)
date_created = models.DateTimeField(auto_now_add=True, blank=True)
date_modified = models.DateTimeField(auto_now=True, blank=True)

def __unicode__(self):
return unicode(self.name)

关于python - 如何使django脆皮形式隐藏特定字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35270111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com