【问题标题】:Why is Django loading the same page, but with different URL?为什么 Django 加载相同的页面,但使用不同的 URL?
【发布时间】:2015-11-18 22:23:30
【问题描述】:

我正在研究 Django 并正在做一门课程来指导我完成这个过程。现在我正在构建一些表单,我遇到了这个问题:当我访问 http://127.0.0.1:8000/ 时,主页已正确加载,但是当我单击注册链接时,页面没有改变,只是 URL 发生了变化(现在是 @987654322 @) 与首页内容相同。我希望表单已加载,并且该视图的模板也已加载。

我检查了我的代码是否与原始课程代码不同,但没有发现任何问题。

这是我的 views.py 文件:

from django.shortcuts import render
from django.contrib.auth.models import User
from django.http import HttpResponseRedirect

from .forms import SubscriberForm

def subscriber_new(request, template='subscribers/subscriber_new.html'):
    if request.method == 'POST':
        form = SubscriberForm(request.POST)
        if form.is_valid():
            # Unpack form values
            username = form.cleaned_data['username']
            password = form.cleaned_data['password1']
            email = form.cleaned_data['email']
            # Create the User record
            user = User(username=username, email=email)
            user.set_password(password)
            user.save()
            # Create Subscriber Record
            # Process payment (via Stripe)
            # Auto login the user
            return HttpResponseRedirect('/success/')
    else:
        form = SubscriberForm()

    return render(request, template, {'form':form})

这是我的 urls.py 文件:

from django.conf.urls import patterns, include, url
from marketing.views import HomePage
from django.contrib import admin

urlpatterns = patterns('',
    #url(r'^admin/', include(admin.site.urls)),

    # Marketing pages
    url(r'$', HomePage.as_view(), name="home"),

    # Subscriber related URLs
    url(r'^signup/$',
        'crmapp.subscribers.views.subscriber_new', name='sub_new'),
)

这是我的 forms.py 文件:

from django import forms
from django.contrib.auth.forms import UserCreationForm

class SubscriberForm(UserCreationForm):
    email = forms.EmailField(
        required=True, widget=forms.TextInput(attrs={'class':'form-control'})
    )
    username = forms.CharField(
        widget=forms.TextInput(attrs={'class':'form-control'})
    )
    password1 = forms.CharField(
        widget=forms.TextInput(attrs={'class':'form-control', 'type':'password'})
    )
    password2 = forms.CharField(
        widget=forms.TextInput(attrs={'class':'form-control', 'type':'password'})
    )

在我的模板中,使用以下语法调用表单:

<li><a href="{% url 'sub_new' %}" class="p-r-none">Sign Up</a></li>

我使用的是 Django 版本 1.8.4 和 Python 2.7.10。

有人可以帮我理解发生了什么吗?

【问题讨论】:

    标签: python django python-2.7 django-forms


    【解决方案1】:

    您在"home" 网址中缺少^

    url(r'^$', HomePage.as_view(), name="home"),
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 2020-09-17
      • 2020-09-19
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多