【问题标题】:How to use crud operation in django?如何在 django 中使用 crud 操作?
【发布时间】:2020-03-29 14:20:08
【问题描述】:

我在 Django crud 操作中遇到了这个问题。我尝试使用 Django 创建一个 crud 操作。所有操作都工作正常,但仅更新操作不起作用。因为我试图单击编辑按钮并在编辑表单中显示数据并更改表单中的数据并单击 URL 中的更新按钮正在更改此类型 (http://localhost:8000/show/6/update/6) 。我需要这个网址 (http://localhost:8000/update/6)。我尝试了很多方法,但我无法在发生错误的地方得到错误。任何人都可以运行我的代码并提供 cmets。如何解决这个问题。

项目

urls.py

from django.contrib import admin
from django.conf.urls import url,include

urlpatterns = [
    url('admin/', admin.site.urls),
    url(r'^',include('olcapp.urls'))
]

应用程序

urls.py

from django.conf.urls import url
from olcapp import views

urlpatterns = [
    url(r'^$',views.get),
    url(r'^post/$',views.post),
    url(r'^show/([0-9]+)/$',views.getId),
    url(r'^update/([0-9]+)/$',views.update,name='update'),
    url(r'^delete/([0-9]+)/$',views.delete),
]

views.py

from django.shortcuts import render
from django.http import HttpResponse
from .models import CrudOperation
from .forms import CrudForm

# Create your views here.
def get(request):
    form = CrudForm()
    data = CrudOperation.objects.all()
    return render(request,'index.html',{'form':form,'data':data})

def getId(request,id):
    form = CrudForm()
    data = CrudOperation.objects.get(id=id)
    return render(request,'edit.html',{'form':form,'data':data})

def post(request):
    form = CrudForm(request.POST)
    if form.is_valid():
        form.save()
    return HttpResponse('<h1>post Method</h1>')

def update(request,id):
    print(id)
    data = CrudOperation.objects.get(id=id)
    form = CrudForm(request.POST,instance=data)
    if(form.is_valid()):
        form.save()
    return HttpResponse('<h1>update method</h1>')

def delete(request,id):
    data = CrudOperation.objects.get(id=id)
    data.delete()
    return HttpResponse('<h1>Delete method</h1>')

模板

index.html

<h1> Registration Form </h1>
<form action="post/" method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="submit">
</form>

<h1>List of all user</h1>  
<table style="width:100%">
        <tr>
          <th>Name</th>
          <th>Email</th>
        </tr>
        {% for i in data %}
        <tr>
          <td>{{ i.name }}</td>
          <td>{{ i.email}}</td>
          <td><a href="show/{{ i.id }}/">Edit</a></td>
          <td><a href="delete/{{ i.id }}/">Delete</a></td>
        </tr>
        {% endfor %}
      </table>

edit.html

<h1> Update Form </h1>
<form action="update/{{ data.id }}" method="POST">
    {% csrf_token %}
    <label>Name</label> 
    <input type="textbox" name="name" value="{{ data.name }}"> 
    <label>Email</label> 
    <input type="textbox" name="email" value="{{ data.email }}"> 
    <input type="submit" value="Update">
</form>

【问题讨论】:

    标签: django django-models django-forms django-templates django-views


    【解决方案1】:

    要创建执行 CRUD 操作的 Django 应用程序,请执行以下步骤。 1. 创建项目 $ django-admin startproject crudexample
    2.创建一个应用程序 $ python3 manage.py startapp 员工 3. 项目结构

    4.运行命令进行迁移。

    $ python3 manage.py 迁移

    5.运行服务器 要运行服务器,请使用以下命令。

    $ python3 manage.py runserver

    访问浏览器 通过输入 localhost:8000/show 访问应用程序,它将显示所有可用的员工记录。 最初,没有记录。

    添加记录 点击添加新记录按钮并填写详细信息。

    此部分还允许、更新和删除操作列中的记录。 保存几条记录后,现在我们有以下记录。

    更新记录 让我们通过单击编辑按钮来更新 x 的记录。它将在编辑模式下显示 x 的记录。

    假设我将 x 更新为 x kumar,然后单击更新按钮。它立即更新记录。 单击更新按钮,它会重定向到以下页面。见名称已更新。 同样,我们也可以删除记录,点击删除链接。

    删除记录 假设,我想删除 x,可以通过单击删除按钮轻松完成。

    【讨论】:

    • @ İrem Simsar 感谢您的回答。但我已经解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 2019-05-20
    • 1970-01-01
    • 2019-12-15
    • 2012-10-11
    • 2016-09-16
    • 1970-01-01
    相关资源
    最近更新 更多