为什么我的Django表单没有显示任何内容?

2024-04-26 10:58:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我遵循的教程中,我们将创建一个形式,以容纳简单的对象参数。你知道吗

代码如下:

表单.py

from django.forms import ModelForm
from .models import Item

class ItemForm(ModelForm):
    class Meta:
        model = Item
        fields = ['item_name', 'item_desc', 'item_price', 'item_image']

型号.py

from django.db import models

class Item(models.Model):

    def __str__(self):
        return self.item_name

    item_name = models.CharField(max_length = 200)
    item_desc = models.CharField(max_length= 200)
    item_price = models.IntegerField()
    item_image = models.CharField(max_length=500, default ="https://i.jamesvillas.co.uk/images/jvh/holiday-destinations/resort/food-placeholder.jpg" )

网址.py

from . import views
from django.urls import path

urlpatterns = [
    path('', views.index, name = 'index'),
    path('item/', views.item, name = 'item'),
    path('info/', views.info, name = "info"),
    path('<int:item_id>/', views.detail, name = "detail" ),
    #add form
    path('add', views.create_item, name = "create"),
]

视图.py

from django.shortcuts import render, redirect
from django.http import HttpResponse
from .models import Item
from django.template import loader
from .forms import ItemForm
#Some code here

def create_item(request):
    form = ItemForm(request.POST or None)

    if (form.is_valid()):
        form.save()
        return redirect('food/index')

    return render(request, 'food/item-form.html', {'form': form})

食物/物品-表单.html

<form method = "POST">
    {% csrf_token %}
    {{ form }}
    <button type= "Submit" >Save</button>
</form>

现在当我转到http://localhost:8000/food/add时,它显示一个空页!我已经遵循完全相同的方式教程,那么为什么我的项目不工作?你知道吗


Tags: pathdjangonamefrompyimportformreturn
1条回答
网友
1楼 · 发布于 2024-04-26 10:58:34

纠正你的错误视图.py你知道吗

from django.http import HttpResponseRedirect

from django.shortcuts import render

from .forms import NameForm

def get_name(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
    # create a form instance and populate it with data from the request:
    form = NameForm(request.POST)
    # check whether it's valid:
    if form.is_valid():
        # process the data in form.cleaned_data as required
        # ...
        # redirect to a new URL:
        return HttpResponseRedirect('/thanks/')

# if a GET (or any other method) we'll create a blank form
else:
    form = NameForm()

return render(request, 'name.html', {'form': form})

相关问题 更多 >