jam*_*ida 3 django django-models django-forms
我正在使用模型来仅显示模型中的字段的子集.提交表单时,form.is_valid()失败,但form.errors为空.我不想在这里显示我的所有代码,但下面是一个示例:
模型和形式
class Videofiles(models.Model):
active = models.CharField(max_length=9)
filenamebase = models.CharField(max_length=180, primary_key=True, db_column='FilenameBase')
program = models.CharField(max_length=60, db_column='Program')
displayname = models.CharField(max_length=150, db_column='DisplayName')
description = models.TextField(db_column='Description', blank=True)
tagskeywords = models.TextField(db_column='TagsKeywords', blank=True)
class Meta:
db_table = u'legacyTable'
class VideoFilesForm(ModelForm):
filenamebase = forms.CharField(max_length=30)
displayname = forms.CharField(max_length=30)
description = forms.CharField(max_length=30, required=False)
tagskeywords = forms.CharField(max_length=60, required=False)
class Meta:
model=Videofiles
fields=['filenamebase','displayname','description','tagskeywords']
Run Code Online (Sandbox Code Playgroud)
视图
def editClip(request, clipId):
clip = Videofiles.objects.get(filenamebase=clipId)
form = VideoFilesForm(instance=clip)
if request.method == 'POST':
if 'save' in request.POST:
if form.is_valid():
form.save()
else:
print form.errors
return render_to_response('legacyDB/edit_clip.html',locals())
Run Code Online (Sandbox Code Playgroud)
您的表单未绑定,因为您没有向其传递任何数据.调用is_valid未绑定的表单将始终返回False,并显示空错误(请参阅表单api docs).
您的视图应如下所示:
def editClip(request, clipId):
clip = Videofiles.objects.get(filenamebase=clipId)
if request.method == 'POST':
# create bound form with input from request.POST
form = VideoFilesForm(request.POST, instance=clip)
if 'save' in request.POST:
if form.is_valid():
form.save()
else:
print form.errors
else:
# create unbound form to display in template
form = VideoFilesForm(instance=clip)
return render_to_response('legacyDB/edit_clip.html',locals())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2438 次 |
| 最近记录: |