【发布时间】:2020-12-05 22:26:19
【问题描述】:
我正在做一个有趣的产品应用程序,但我遇到了一个错误。
错误表明在我的 views.py 文件的第 29 行未定义重定向。这是我的views.py文件 从 django.contrib.auth.models 导入用户 从 django.shortcuts 导入渲染,get_object_or_404 从 .forms 导入 NewProductForm 从 .models 导入产品
# Create your views here.
def home(request):
products = Product.objects.all()
return render(request, 'home.html', {'products': products})
def product_topics(request, pk):
product = get_object_or_404(Product, pk=pk)
return render(request, 'topics.html', {'product': product})
def new_product(request, pk):
product = get_object_or_404(Product, pk=pk)
user = User.objects.first()
if (request.method == 'POST'):
form = NewProductForm(request.POST)
if(form.is_valid()):
product = form.save(commit = False)
product.starter = user
product.save()
return redirect('product_topics',pk=product.pk)
else:
form = NewProductForm()
return render(request, 'new_product.html', {'product': product, 'form': form})
这是我的 urls.py 文件
from django.conf.urls import url
from django.contrib import admin
from inventories import views
urlpatterns = [
url(r'^$', views.home, name='home'),
url(r'^products/(?P<pk>\d+)/$', views.product_topics, name='product_topics'),
url(r'^products/(?P<pk>\d+)/new/$', views.new_product, name='new_product'),
url(r'^admin/', admin.site.urls),
]
这是我用来创建新产品的表单
{% extends 'base.html' %}
{% load widget_tweaks %}
{% block title %}Start a New Topic{% endblock %}
{% block breadcrumb %}
<li class="breadcrumb-item"><a href="{% url 'home' %}">Products</a></li>
<li class="breadcrumb-item"><a href="{% url 'product_topics' product.pk %}">{{ product.name }}</a></li>
<li class="breadcrumb-item active">New topic</li>
{% endblock %}
{% block content %}
<form method="post" novalidate>
{% csrf_token %}
{% for field in form %}
<div class="form-group">
{{ field.label_tag }}
{% render_field field class="form-control" %}
{% if field.help_text %}
<small class="form-text text-muted">
{{ field.help_text }}
</small>
{% endif %}
</div>
{% endfor %}
<button type="submit" class="btn btn-success">Post</button>
</form>
{% endblock %}
这个错误是什么意思,你能告诉我如何解决它吗?
【问题讨论】: