【问题标题】:A NameError doing a Product class in views.py at product/1/new在 product/1/new 的 views.py 中执行 Product 类的 NameError
【发布时间】: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 %}

这个错误是什么意思,你能告诉我如何解决它吗?

【问题讨论】:

    标签: python django


    【解决方案1】:

    您尚未导入重定向功能。将此添加到您的视图中

    from django.shortcuts import redirect
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多