首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何修复Django中的Createview

如何修复Django中的Createview
EN

Stack Overflow用户
提问于 2017-10-07 16:30:41
回答 1查看 64关注 0票数 1

我正在尝试使用django python制作一个名片管理器,但我不知道为什么我的名片没有被添加。当我按下"Add business Card“按钮时,它会转到,但它是空的。我还想知道如何使删除和更新按钮在名片列表上工作。我想我必须在模型中添加一个主键,但我不知道如何正确传递它。

视图

代码语言:javascript
运行
AI代码解释
复制
from django.views import generic
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.core.urlresolvers import reverse_lazy
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from django.views.generic import View
from .models import BusinessInfo

class BusinessCardListView(generic.ListView):
    model = BusinessInfo
    template_name = 'manager/BusinessCardList.html'
    context_object_name = 'all_business_cards'

    def get_queryset(self):
        return BusinessInfo.objects.all()


class BusinessCardCreate(CreateView):
    model = BusinessInfo
    fields = ['card', 'company_name', 'phone_number', 'website', 'representative_name', 'branch_address', 'job_title',
              'fax_number', 'cell_phone_number', 'email']


class BusinessCardUpdate(UpdateView):
    model = BusinessInfo
    fields = ['card', 'company_name', 'phone_number', 'website', 'representative_name', 'branch_address', 'job_title',
              'fax_number', 'cell_phone_number', 'email']


class BusinessCardDelete(DeleteView):
    model = BusinessInfo
    success_url = reverse_lazy('manager:index')

增加名片表格

代码语言:javascript
运行
AI代码解释
复制
{% extends 'manager/base.html' %}
{% block title %}Add a New Business Card{% endblock %}
{% block albums_active %}active{% endblock %}
{% block body %}

<div class="container-fluid">
   <div class="row">
       <div class="col-sm-12 col-md-7">
            <div class="panel panel-default">
                <div class="panel-body">
                    <form class="form-horizontal" action="{% url 'manager:index' %}" method="post" enctype="multipart/form-data">
                        {% csrf_token %}
                        {% include 'manager/form_template.html' %}
                        <div class="form-group">
                            <div class="col-sm-offset-2 col-sm-10">
                                <button type="submit" class="btn btn-success">Add Business Card</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
{% endblock %}

form_template

代码语言:javascript
运行
AI代码解释
复制
{% for field in form %}
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <span class="text-danger small">{{ field.error }}</span>
        </div>
        <label class="control-label col-sm-2">{{ field.label_tag }}</label>
        <div class="col-sm-10">{{ field }}</div>
    </div>
{% endfor %}

urls

代码语言:javascript
运行
AI代码解释
复制
from django.conf.urls import url
from . import views


app_name = 'manager'
urlpatterns = [
    url(r'^$', views.BusinessCardListView.as_view(), name='index'),
    url(r'business_card/add/$', views.BusinessCardCreate.as_view(), name='business_card-add'),
    url(r'business_card/(?P<pk>[0-9]+)/edit/$', views.BusinessCardUpdate.as_view(), name='edit'),
    url(r'business_card/(?P<pk>[0-9]+)/delete/$', views.BusinessCardDelete.as_view(), name='delete'),
]

模型

代码语言:javascript
运行
AI代码解释
复制
from django.db import models
from django.core.urlresolvers import reverse


# Business Card Info
class BusinessInfo(models.Model):
    card = models.FileField(default='Picture')
    company_name = models.CharField(max_length=100000, primary_key=True)
    website = models.CharField(max_length=100000)
    representative_name = models.CharField(max_length=100000)
    branch_address = models.CharField(max_length=100000)
    job_title = models.CharField(max_length=10000)
    email = models.EmailField()
    phone_number = models.CharField(max_length=100000)
    fax_number = models.CharField(max_length=100000)
    cell_phone_number = models.CharField(max_length=100000)

    def get_absolute_url(self):
        return reverse('manager:index')

    def __str__(self):
        return self.company_name + ':' + self.representative_name

名片表

代码语言:javascript
运行
AI代码解释
复制
{% extends 'manager/Base.html' %}
{% block body %}
<style>
table, th, .Info {
    border: 1px solid black;
    border-collapse: collapse;
    text-align: center;
}
</style>


<table style="width:100%">
    <tr>
        <th>Business Card</th>
        <th>Company Name</th>
        <th>Representative Name</th>
        <th>Job Title</th>
        <th>Branch Address</th>
        <th>Website</th>
        <th>Phone Number</th>
        <th>Cell Phone Number</th>
        <th>Email</th>
        <th>Fax Number</th>
    </tr>
    {% for businessinfo in all_business_cards %}
        <tr>
            <td class="Info">{{ businessinfo.card }}</td>
            <td class="Info">{{ businessinfo.company_name }}</td>
            <td class="Info">{{ businessinfo.representative_name }}</td>
            <td class="Info">{{ businessinfo.job_title }}</td>
            <td class="Info">{{ businessinfo.branch_address }}</td>
            <td class="Info">{{ businessinfo.website }}</td>
            <td class="Info">{{ contactinfo.phone_number }}</td>
            <td class="Info">{{ contactinfo.cell_phone_number }}</td>
            <td class="Info">{{ contactinfo.email }}</td>
            <td class="Info">{{ contactinfo.fax_number }}</td>
            <td>
                <form action="{% url 'music:delete' %}" method="post" style="display: inline;">
                {% csrf_token %}
                    <input type="hidden" name="company_name" value="{{ company_name }}"/>
                    <button type="submit" class="btn btn-default btn-sm">
                        <span class="glyphicon glyphicon-trash"></span>
                    </button>
                </form>
            </td>
        </tr>
    {% endfor %}
</table>
{% endblock %}
EN

回答 1

Stack Overflow用户

发布于 2017-10-07 19:15:38

名片创建表单模板中的BuisinessCardListView窗体标记中的操作属性是{% url 'manager:index‘’%},它指向提交时的list视图。

要实现您想要的结果,它应该指向CreateView url,如下所示:

代码语言:javascript
运行
AI代码解释
复制
  {% extends 'manager/base.html' %}
  {% block title %}Add a New Business Card{% endblock %}
  {% block albums_active %}active{% endblock %}
  {% block body %}

 <div class="container-fluid">
 <div class="row">
    <div class="col-sm-12 col-md-7">
        <div class="panel panel-default">
            <div class="panel-body">
                <form class="form-horizontal" action="{% url 'manager:business_card-add' %}" method="post" enctype="multipart/form-data">
                    {% csrf_token %}
                    {% include 'manager/form_template.html' %}
                    <div class="form-group">
                        <div class="col-sm-offset-2 col-sm-10">
                            <button type="submit" class="btn btn-success">Add Business Card</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
 </div>
 </div>
 {% endblock %}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46626431

复制
相关文章
如何修复Vue中的 “this is undefined” 问题
别担心,不只有你一个人,我也经常遇到这个问题很多次,接下我们一起来看看如何解决这个问题。
前端小智@大迁世界
2020/05/12
5.1K0
Django 中如何优雅的记录日志
日志是个好东西,但却并不是所有人都愿意记,直到出了问题才追悔莫及,长叹一声,当初要是记日志就好了。
AlwaysBeta
2020/11/11
1.9K0
如何修复Windows 10中损坏的系统文件!
相信大家用电脑的都遇到过这样的情况:电脑在启动过程中感觉有问题或遇到问题,这时候则Windows系统文件可能已损坏,丢失,甚至已被某个软件安装更改。与之前的大多数Windows版本一样,Windows 10包含一个名为「SFC」的命令提示实用程序,它将扫描,验证和修复系统文件。
FreeRonin
2019/08/22
9.7K0
django 1.8 官方文档翻译: 3-4-3 使用基于类的视图处理表单
你自己实现这些功能经常导致许多重复的样本代码(参见在视图中使用表单)。为了避免这点,Django 提供一系列的通用的基于类的视图用于表单的处理。
ApacheCN_飞龙
2022/11/27
1.9K0
基于OpenCV修复表格缺失的轮廓--如何识别和修复表格识别中的虚线
通过扫描或照片对文档进行数字化处理时,错误的设置或不良的条件可能会影响图像质量。在识别的情况下,这可能导致表结构损坏。某些图标的处理结果可能只是有轻微的瑕疵,甚至只是一些小孔,但是无法将其识别为连贯的系统。有时在创建在单元格时,表的某些侧面可能也没有线的存在。表和单元格类型多种多样,因此通常所提出的代码可能并不适合所有情况。尽管如此,如果我们能对提取的表格进行少量修改,大部分程序仍然可以使用。大多数表格识别算法是基于表格的结构。由于没有完整的边线会使一些单元格无法被识别,导致不良的识别率,因此我们需要想办法修复这些丢失的线段。
AI算法与图像处理
2021/01/20
4.4K0
基于OpenCV修复表格缺失的轮廓--如何识别和修复表格识别中的虚线
通过扫描或照片对文档进行数字化处理时,错误的设置或不良的条件可能会影响图像质量。在识别的情况下,这可能导致表结构损坏。某些图标的处理结果可能只是有轻微的瑕疵,甚至只是一些小孔,但是无法将其识别为连贯的系统。有时在创建在单元格时,表的某些侧面可能也没有线的存在。表和单元格类型多种多样,因此通常所提出的代码可能并不适合所有情况。尽管如此,如果我们能对提取的表格进行少量修改,大部分程序仍然可以使用。大多数表格识别算法是基于表格的结构。由于没有完整的边线会使一些单元格无法被识别,导致不良的识别率,因此我们需要想办法修复这些丢失的线段。
小白学视觉
2021/01/21
4.7K0
如何使用Python中Django模板?
https://www.mattlayman.com/understand-django/templates-user-interfaces/
程序员小猿
2021/01/19
4K0
如何使用Python中Django模板?
PrestaShop 网站漏洞修复如何修复
PrestaShop网站的漏洞越来越多,该网站系统是很多外贸网站在使用的一个开源系统,从之前的1.0初始版本到现在的1.7版本,经历了多次的升级,系统使用的人也越来越多,国内使用该系统的外贸公司也很多,PrestaShop扩展性较高,模板也多,多种货币自由切换,并支持信用卡以及paypal支付,是外贸网站的首选。就在最近几天,PrestaShop被爆出有远程代码注入漏洞,该漏洞影响范围较光,危害较大,可以上传webshell到网站根目录下。
网站安全专家
2019/07/24
4.2K0
PrestaShop 网站漏洞修复如何修复
PrestaShop网站的漏洞越来越多,该网站系统是很多外贸网站在使用的一个开源系统,从之前的1.0初始版本到现在的1.7版本,经历了多次的升级,系统使用的人也越来越多,国内使用该系统的外贸公司也很多,PrestaShop扩展性较高,模板也多,多种货币自由切换,并支持信用卡以及paypal支付,是外贸网站的首选。就在最近几天,PrestaShop被爆出有远程代码注入漏洞,该漏洞影响范围较光,危害较大,可以上传webshell到网站根目录下。
技术分享达人
2019/01/01
4.1K0
Django 教程 --- Django中的视图
Django视图是Django M V T结构的重要参与者之一。视图是用户界面,即您呈现网站时在浏览器中看到的内容。它由HTML / CSS / Javascript和Jinja文件表示。根据Django文档,视图函数是一个Python函数,它接受Web请求并返回Web响应。此响应可以是网页的HTML内容,重定向,404错误,XML文档或图像(Web浏览器可以显示的任何内容)
公众号---人生代码
2020/05/26
3.1K0
Django 教程 --- Django中的视图
Android中的热修复
在运行时替换掉底层有Bug的方法的地址,将他们的指针指向修复之后的方法的内存地址,从而实现热修复的功能。
码农帮派
2021/02/25
2.1K1
Android中的热修复
为何Keras中的CNN是有问题的,如何修复它们?
上个星期我做了一些实验,用了在 CIFAR10 数据集上训练的 VGG16。我需要从零开始训练模型,所以没有使用在 ImageNet 上预训练的版本。
机器之心
2019/07/18
3K0
为何Keras中的CNN是有问题的,如何修复它们?
为何Keras中的CNN是有问题的,如何修复它们?
上个星期我做了一些实验,用了在 CIFAR10 数据集上训练的 VGG16。我需要从零开始训练模型,所以没有使用在 ImageNet 上预训练的版本。
磐创AI
2019/07/23
2.9K0
为何Keras中的CNN是有问题的,如何修复它们?
如何在MySQL中检查和修复MyISAM表
由于写入不完整,空间不足,MySQL守护程序被杀或崩溃,电源故障等原因,MySQL表可能因各种原因而损坏。 如果MySQL检测到崩溃或损坏的表,则需要先修复它才能再次使用。 本指南将引导您检测崩溃的表以及如何修复MyISAM表。
星哥玩云
2022/08/17
2.3K0
django中ModelForm多表单组合的解决方案
django是Python语言快速实现web服务的大杀器,其开发效率可以非常的高!但因为秉承了语言的灵活性,django框架又太灵活,以至于想实现任何功能都有种“条条大路通罗马”的感觉。这么多种选择放在一起,如何分出高下?我想此时的场景下就两个标准:
陶辉
2019/06/21
3.5K0
利用Django通用类视图(class
最近在学习Django,官方文档介绍地十分详细。但是“大而全”就难免会有些不够速成,和我们这个浮躁的互联网时代格格不入,所以我就整理了这个文档。就像coolshell说的,一泡屎的时间就可以看完。
py3study
2020/01/03
1.5K0
Django中的QuerySet
  查询集,类似一个列表,包含了满足查询条件的所有项。QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作。只有你查询的时候才真正的操作数据库。意味着QuerySet是惰性执行的----即创建查询集不会带来任何的数据库访问,直到查询集需要求值的时候,Django才会真正运行这个查询。
forxtz
2020/10/10
1.4K0
点击加载更多

相似问题

如何修复'CreateView is missing a QuerySet‘

252

如何测试Django CreateView?

31

CreateView中的AttributeError - Django

144

Django createview权限

20

如何处理Django CreateView中的错误

04
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档