django - 关键错误 django - 使用 django 表单传递其他内容
问题描述
我有这样的模型:
class Photo(models.Model):
title = models.CharField(max_length=255, blank=True)
file = models.FileField(default='default.jpg')
page = models.ForeignKey(Page, on_delete=models.CASCADE)
class Page(Group):
name = models.IntegerField()
在我的 forms.py 中,为了创建一个用于发布多个图像的表单,我创建了这个:我还覆盖了 get_form_kwargs 以通过表单传递“页面”事物,因为您可以看到 Photo 模型有一个页面外键。
class PhotoForm(forms.ModelForm):
def get_form_kwargs(self):
kwargs = super(PhotoForm, self).get_form_kwargs()
kwargs['page'] = Page.objects.get(pk=self.GET['pk'])
return kwargs
class Meta:
model = Photo
fields = ('file', )
在我的主要 urls.py 中,我说:
path('page/<int:pk>/photos/', include('photos.urls'))
在照片应用程序 urls.py 中,我说:
path('progress-bar-upload/', views.ProgressBarUploadView.as_view(), name='progress_bar_upload')
在我的照片应用views.py中我说:
class ProgressBarUploadView(View):
model = Photo
def get(self, request, **kwargs):
photos_list = Photo.objects.all()
page = get_object_or_404(Page, page=self.kwargs['page'])
return render(self.request, 'photos/progress_bar_upload/index.html', {'photos': photos_list, 'page':page})
def post(self, request):
time.sleep(1)
form = PhotoForm(self.request.POST, self.request.FILES)
if form.is_valid():
photo = form.save()
data = {'is_valid': True, 'name': photo.file.name, 'url': photo.file.url}
else:
data = {'is_valid': False}
return JsonResponse(data)
然后当我在我的html中调用页面时,
{{page}}
然后,当我转到 'localhost:/page/1/photos/progress-bar-upload/' 时,我收到此错误:
KeyError at /page/7/photos/progress-bar-upload/
'page'
那么我能做什么呢?有人能帮我吗?任何帮助将不胜感激。
解决方案
推荐阅读
- intellij-idea - Lombok 与 IntelliJ 2021.1.2 不兼容
- svn - svn propset:更新多级 'svn:externals'
- android - Flutter USB 调试
- javascript - 如何解决“用户验证失败:昵称:需要路径‘昵称’。密码:需要路径‘密码’。” 节点js,mongodb
- reactjs - Jest - 多个 useState 模拟
- html - 如何在jinja2中传递href属性?
- xml - xsd 中是否有任何方法可以成为没有重复值的属性?
- amazon-web-services - 使用 AWS ElastiCache for Redis 进行本地/离线开发
- laravel - 如何在 Laravel 中使用日志查看器查看自定义日志文件
- html - 如何在css中制作一个椭圆形的侧边框?