创建与 DetailView 相反的视图

2023-12-25

上传图像后,我试图从 CreateView 反转到 DetailView。

我收到同样的消息

NoReverseMatch 位于 /photo/image/add 未找到带有参数 '()' 和关键字参数 '{'pk': 50}' 的 'image-view' 的反向操作。尝试了 0 个模式:[]

这是我的图像模型

from django.db import models
from django.contrib.auth.models import User
from django.contrib import admin
from django.conf import settings
from string import join
import os

class Image(models.Model):
    title = models.CharField(max_length=60, blank=True, null=True)
    image = models.FileField(upload_to="images/")
    tags = models.ManyToManyField(Tag, blank=True)
    albums = models.ManyToManyField(Album, blank=True)
    created = models.DateTimeField(auto_now_add=True)
    rating = models.IntegerField(default=50)
    width = models.IntegerField(blank=True, null=True)
    height = models.IntegerField(blank=True, null=True)
    user = models.ForeignKey(User, null=True, blank=True)


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

    def size(self):
            return "%s x %s" % (self.width, self.height)


    def tags_(self):
        lst = [x[1] for x in self.tags.values_list()]
        return str(join(lst, ', '))

    def albums_(self):
        lst = [x[1] for x in self.albums.values_list()]
        return str(join(lst, ', '))

    def thumbnail(self):
        return """<a href="/media/%s"><img border="0" alt="" src="/media/%s" height="40" /></a>""" % (
                                                                        (self.image.name, self.image.name))
        thumbnail.allow_tags = True

    def get_absolute_url(self,*args,**kwargs):
        return reverse('image-view',kwargs={'pk': self.pk})

我的网址.py

from django.conf.urls import patterns, url
from django.conf import settings
from django.conf.urls.static import static
from photo import views


urlpatterns = patterns('',
    url(r'^image/(?P<pk>\d+)/$', views.ImageView.as_view(),name='image-view',),
    url(r'^$', views.ListImage.as_view(),name ='Photo-List',),
    url(r'^image/add/$', views.ImageCreate.as_view(), name = 'create-image',),
    url(r'update/(?P<pk>\d+)/$', views.ImageUpdate.as_view(),name='image-update',),

) 

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL,
                          document_root = settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL,
                          document_root = settings.MEDIA_ROOT)

my views

from django.views.generic import ListView, DetailView, UpdateView, CreateView, UpdateView, DeleteView
from django.core.urlresolvers import reverse_lazy, reverse
from photo.models import Tag, Image, Album
from django.conf import settings

class ImageView(DetailView):
    model = Image
    allow_empty = True
    template_name = 'image.html'

class ListImage(ListView):
    #context_object_name = 'object_list'
    template_name = 'image_list.html'
    model = Image
    #def get_queryset(self):
    #    return Image.objects.all()

class ImageCreate(CreateView):
    model = Image
    template_name='image_create.html'
    fields = ['title','image']

有关我的错误的更多详细信息

Traceback Switch to copy-and-paste view

/Library/Python/2.7/site-packages/django/core/handlers/base.py in get_response
                    response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/Library/Python/2.7/site-packages/django/views/generic/base.py in view
            return self.dispatch(request, *args, **kwargs) ...
▶ Local vars
/Library/Python/2.7/site-packages/django/views/generic/base.py in dispatch
        return handler(request, *args, **kwargs) ...
▶ Local vars
/Library/Python/2.7/site-packages/django/views/generic/edit.py in post
        return super(BaseCreateView, self).post(request, *args, **kwargs) ...
▶ Local vars
/Library/Python/2.7/site-packages/django/views/generic/edit.py in post
            return self.form_valid(form) ...
▶ Local vars
/Library/Python/2.7/site-packages/django/views/generic/edit.py in form_valid
        return super(ModelFormMixin, self).form_valid(form) ...
▶ Local vars
/Library/Python/2.7/site-packages/django/views/generic/edit.py in form_valid
        return HttpResponseRedirect(self.get_success_url()) ...
▶ Local vars
/Users/henriaugris/Documents/Django/mysite/photo/views.py in get_success_url
        return reverse('image-view', kwargs={'pk' : self.object.pk}) ...
▶ Local vars
/Library/Python/2.7/site-packages/django/core/urlresolvers.py in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) ...
▶ Local vars
/Library/Python/2.7/site-packages/django/core/urlresolvers.py in _reverse_with_prefix
                             (lookup_view_s, args, kwargs, len(patterns), patterns)) ...
▶ Local vars
Request information

GET
No GET data

而不是在 models.py 文件中将 get_absolute_url 设置为:

def get_absolute_url(self,*args,**kwargs):
        return reverse('image-view',kwargs={'pk': self.pk})

您可以在views.py 文件中将其设置为:

class ImageCreate(CreateView):
    model = Image
    template_name='image_create.html'
    fields = ['title','image']
    def get_success_url(self):
        return reverse('image-view', kwargs={'pk' : self.object.pk})

    def get_form_kwargs(self, *args, **kwargs):
        kwargs = super(ImageCreate, self).get_form_kwargs(
            *args, **kwargs)
        return kwargs

进行此更改后,您应该从 models.py 文件中删除 get_absolute_url。进行此更改后,您应该会看到成功创建新图像后上传的图像的详细视图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建与 DetailView 相反的视图 的相关文章

随机推荐

  • 如何在应用程序设置中存储 int[] 数组

    我正在使用 C Express 2008 创建一个简单的 Windows 窗体应用程序 我是一位经验丰富的 C 开发人员 但我对 C 和 NET 几乎是全新的 我目前正在使用设置设计器和代码存储一些简单的应用程序设置 如下所示 Store
  • Django-Tastypie:如何访问 Bundle 中的 (Http)request 对象?

    我需要访问资源脱水中的 HttpRequest 对象 方法 在文档中 它表明bundle request是一个有效的属性 它是 在 resources html 页面中 当我尝试将其添加到我的代码中时 我得到一个 错误声称 Bundle 对
  • 如何使用 useReducer([state,dispatch]) 和 useContext 避免无用的重新渲染?

    当使用多个 useReducers 时 每个组件都会使用部分状态重新渲染 import React useContext from react import Store from store import setName from acti
  • 在 Swift 中获取 UIBarButtonItem 的框架?

    我怎样才能快速获得 rightbarbuttonItem 的框架 我找到了这个 UIBarButtonItem 如何找到它的框架 https stackoverflow com questions 14318368 uibarbuttoni
  • 使用 tlmgr 搜索所有关键字

    我想知道如何查找所有 TeX Live 关键字 我正在使用 Windows 10 和 TeX Live 2019 我尝试过这个命令tlmgr search list keyword但我没有收到 except 结果 这种语法不再可能了 看着h
  • 在 UML 类图中,什么是边界类、控制类和实体类?

    我现在使用 NetBeans 作为我选择的 IDE 它有一个用于 UML 建模的插件 在类图中 有一些模型元素称为Boundary Class Control Class and Entity Class 然而 我找不到它们的一个好的定义
  • 为什么 PL/SQL 不尊重角色授予的权限?

    执行 PL SQL 块时 授予角色的任何权限都将被忽略 相反 您必须为特定用户提供特定的授权才能运行它 如果我想授予 DBA 访问包 函数或过程的权限 我无法向 DBA 角色授予权限 我必须向 DBA 角色中的每个用户授予授权 如果用户不再
  • 在这种情况下我应该使用 Drools 吗?

    我将使用大学的图书馆系统来解释我的用例 学生在图书馆系统中注册并提供个人资料 性别 年龄 院系 以前完成的课程 当前注册的课程 已借阅的书籍等 图书馆系统中的每本书都会根据学生的资料定义一些借阅规则 例如 计算机算法课本只能由当前注册该班级
  • 未能@AutoWire @WebServlet 中的成员

    我似乎无法将我的 servlet 的字段传递给 AutoWire 他们最终归零 我有一个纯注释配置的 web 应用程序 没有 XML 文件 我的 servlet 看起来像这样 WebServlet service public class
  • 将 python Webserver 作为 Windows 服务运行

    我有服务器和控制台scripts http svn python org projects python trunk Lib CGIHTTPServer py它继续监听端口上的控制台和服务器请求 在 UNIX 环境中 我将服务器和控制台脚本
  • 在脚本中使用临时函数或过程

    我在用SQL Server 2012 我有一个脚本 通过它我可以将值插入到表中 在该脚本中我必须转换某些值的格式DateTime基于两个参数的变量 我可以使用CASE or if条件在sql 我不被允许做任何Function or proc
  • 如何在卡片操作中单击时调用特定回调 - Bot Framework

    我展示了一个带有一些产品的轮播 每个产品都有一个带有代码的按钮 卡片操作类型为 ImBack 但一旦通过 postAsync 方法显示轮播 单击按钮将再次调用根对话框 有没有办法定义按钮单击的回调或显示相同的轮播但使用 PromptDial
  • Windows Vista 中的安装文件名

    我在这篇文章中读到 http technet microsoft com en us library cc709628 aspx http technet microsoft com en us library cc709628 aspx
  • QTableView:当用户使用鼠标单击特定单元格时如何获取数据

    其实我是Qt新手 无法匹配QMouseEvent with QTableview 请帮助解决这个问题 下面是一个示例 说明如何在单击表格单元格时获取该单元格的文本 假设一个QTableView定义在一些MyClass班级 你需要connec
  • 如何使用 Bower 安装 Bootstrap v4 alpha? [复制]

    这个问题在这里已经有答案了 The v4 alpha 文档 http v4 alpha getbootstrap com getting started download states Bootstrap v4 0 0 alpha 可以通过
  • 如何运行将数据加载到其他项目 BigQuery Table 的云编辑器任务

    我在项目 A 下创建了云编辑器环境 我想将数据加载到其他项目 B BigQuery 表中 我知道任务 GCSToBigQueryOperator 但它没有成功 它失败了 我想知道如何实现这一点 我想从项目 A 运行一个将数据加载到项目 B
  • 滚动到 angular2 时动画进入视图

    我找到了一个库 用于在滚动到 aos https github com michalsnik aos 但它似乎没有任何 angular2 绑定可供使用 有谁知道如何在 Angular2 中完成类似的事情 或者至少配置 aos 在 Angul
  • 如何在iPhone中创建应用程序包?

    我使用 XCode 制作了一个小型应用程序 我如何创建一个应用程序包以将其安装在 iPhone 中 谁能帮我解决这个问题 提前致谢 是的 如上所述 您需要支付 99 美元的开发者费用 完成此操作后 您可以通过 XCode 直接部署到使用配置
  • PHP 中的数组打乱顺序

    我有以下代码 输出如下 域名 com image1 jpg 域名 com image2 jpg 域名 com image3 jpg 我正在尝试随机化输出的顺序 在 foreach 语句之前 我尝试使用 shuffle bb 对数组进行洗牌
  • 创建与 DetailView 相反的视图

    上传图像后 我试图从 CreateView 反转到 DetailView 我收到同样的消息 NoReverseMatch 位于 photo image add 未找到带有参数 和关键字参数 pk 50 的 image view 的反向操作