仿照本章节综合实训示例,使用ModelForm创建表单实现商品信息管理系统的增、删、 改、查功能。
时间: 2023-10-20 20:06:49 浏览: 28
抱歉,作为AI语言模型,我无法使用ModelForm创建表单实现商品信息管理系统的增、删、改、查功能,但我可以提供一些相关的Python代码供您参考。
首先,我们需要定义一个商品模型:
```python
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=8, decimal_places=2)
description = models.TextField()
def __str__(self):
return self.name
```
接着,我们可以使用Django的ModelForm来创建一个表单:
```python
from django import forms
from .models import Product
class ProductForm(forms.ModelForm):
class Meta:
model = Product
fields = ['name', 'price', 'description']
```
然后我们可以在视图中使用表单来实现增、删、改、查功能:
```python
from django.shortcuts import render, get_object_or_404, redirect
from .models import Product
from .forms import ProductForm
def product_list(request):
products = Product.objects.all()
return render(request, 'product_list.html', {'products': products})
def product_detail(request, pk):
product = get_object_or_404(Product, pk=pk)
return render(request, 'product_detail.html', {'product': product})
def product_create(request):
if request.method == 'POST':
form = ProductForm(request.POST)
if form.is_valid():
product = form.save(commit=False)
product.save()
return redirect('product_detail', pk=product.pk)
else:
form = ProductForm()
return render(request, 'product_form.html', {'form': form})
def product_update(request, pk):
product = get_object_or_404(Product, pk=pk)
if request.method == 'POST':
form = ProductForm(request.POST, instance=product)
if form.is_valid():
product = form.save(commit=False)
product.save()
return redirect('product_detail', pk=product.pk)
else:
form = ProductForm(instance=product)
return render(request, 'product_form.html', {'form': form})
def product_delete(request, pk):
product = get_object_or_404(Product, pk=pk)
product.delete()
return redirect('product_list')
```
最后,我们可以在模板中使用表单来展示商品信息:
```html
<!-- product_list.html -->
{% for product in products %}
<h2><a href="{% url 'product_detail' pk=product.pk %}">{{ product.name }}</a></h2>
<p>{{ product.price }}</p>
<p>{{ product.description }}</p>
{% endfor %}
<!-- product_detail.html -->
<h2>{{ product.name }}</h2>
<p>{{ product.price }}</p>
<p>{{ product.description }}</p>
<!-- product_form.html -->
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Save</button>
</form>
```
以上是使用ModelForm创建表单实现商品信息管理系统的增、删、改、查功能的示例代码。