python - django 表单的问题(1 个视图中的列表和表单)
问题描述
我的问题是提交表单后。看起来是这样的,提交表单然后提交后重新加载页面,我可以在列表中看到标题电影,但是在表单下它说“这个标题在数据库中”。
我将非常感谢任何提示:)
class MovieListWithForm(ListView, ModelFormMixin):
model = Movie
form_class = MovieForm
template_name = 'pages/movie_list.html'
def get(self, request, *args, **kwargs):
self.object = None
self.form = self.get_form(self.form_class)
return ListView.get(self, request, *args, **kwargs)
def post(self, request, *args, **kwargs):
# When the form is submitted, it will enter here
self.object = None
self.form = self.get_form(self.form_class)
if self.form.is_valid():
self.object = self.form.save()
self.form = MovieForm()
return self.get(request, *args, **kwargs)
def get_context_data(self, *args, **kwargs):
# Just include the form
context = super(MovieListWithForm, self).get_context_data(*args, **kwargs)
context['form'] = self.form
context['list'] = Movie.objects.all().order_by('votes')
return context
class MovieForm(ModelForm):
class Meta:
model = Movie
fields = ['title']
def __init__(self, *args, **kwargs):
super(MovieForm, self).__init__(*args, **kwargs)
self.fields['title'].label = "Movie title"
def clean_title(self):
data = self.cleaned_data['title']
if Movie.objects.filter(title=data).exists():
raise ValidationError("this title is in base")
if data == None:
raise ValidationError("Add title")
return data
解决方案
推荐阅读
- java - 覆盖超级方法时的 ClassCastException(可比较
) - sql - 当引号中有数字或混合数据时如何正确确定数据类型?
- r - 未找到带有 GWmodel 对象的闪亮应用
- vue.js - Vue v-if v-if-else 时间复杂度
- python - python对带有字符串整数字段的字典值列表进行排序
- r - 我在 R 中有 mtcars 内置数据集,我想要分类数据,但我的所有列都是数字的。如何找到分类
- java - 带有谷歌 icalendar 的 Bryntum 日历重复 Extjs
- html - NoReverseMatch - 未找到“详细信息”的反向。'detail' 不是有效的视图函数或模式名称
- github - 如何获取 github-api 每年的提交次数
- html - 需要将代码段链接到 url