2017-09-27 191 views
1

下面的代碼給出了這樣的錯誤導入錯誤:沒有名爲「模型」

導入錯誤模塊:沒有名爲模塊「模型」

我不知道爲什麼。我想在django中自定義我自己的註冊表單。

的錯誤是在一行:

from models import CustomUser in forms.py 

forms.py:

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

from models import CustomUser 

class CustomUserCreationForm(UserCreationForm): 

def __init__(self, *args, **kargs): 
    super(CustomUserCreationForm, self).__init__(*args, **kargs) 
    del self.fields['username'] 

class Meta: 
    model = CustomUser 
    fields = ["email",] 

class CustomUserChangeForm(UserChangeForm): 

def __init__(self, *args, **kargs): 
    super(CustomUserChangeForm, self).__init__(*args, **kargs) 
    del self.fields['username'] 

class Meta: 
    model = CustomUser 

register.html:

{% extends "account/base.html" %} 
{% load crispy_forms_tags %} 
{% load i18n %} 

{% block head_title %}{% trans "Signup" %}{% endblock %} 

{% block content %} 
<div class= 'col-md-4 col-md-offset-4'> 
<h1>{% trans "Register" %}</h1> 

<p>{% blocktrans %}Already have an account? Then please <a href="{{ login_url }}">sign in</a>.{% endblocktrans %}</p> 

<form acction="account/register/" method="post"> 
{% csrf_token %} 
{{ form|crispy }} 


<input type="submit" value="Register" /> 
<button type="submit" class= 'btn btn-default'>{% trans "Sign Up" %} &raquo;</button> 
</form> 
</div> 
{% endblock %} 

views.py:

from django.contrib.auth.decorators import login_required 
from django.shortcuts import render, redirect 
from custom_user.forms import CustomUserCreationForm 

#Create your views here 
def home(request): 
    return render(request, "home.html") 

def login(request): 
    c = {} 
    c.update(csrf(request)) 
    return render(request, "login.html", c) 

def auth_view(request): 
    username = request.POST.get['username', ''] 
    password = request.POST.get['password', ''] 
    user = auth.authenticate(username=username, password=password) 

    if user is not None: 
     auth.login(request, user) 
     return HTTpResponseRedirect('account/login') 
    else: 
     return HTTpResponseRedirect('account/login') 


def logout(request): 
    auth.logout(request) 
    return render(request, 'logout.html') 
+0

在哪裏你的models.py? – blueCat

回答

7

您需要添加點

from .models import CustomUser 
# ^^^ 

Ø最好的方式使用APP_NAME

from custom_user.models import CustomUser 

,併爲你的第二個錯誤,你可以簡單的添加空排除到元:

class CustomUserChangeForm(UserChangeForm): 

def __init__(self, *args, **kargs): 
    super(CustomUserChangeForm, self).__init__(*args, **kargs) 
    del self.fields['username'] 

class Meta: 
    model = CustomUser 
    exclude =() # THIS ROW 
+0

我試着看起來像這樣:django.core.exceptions.ImproperlyConfigured:禁止創建沒有'fields'屬性或'exclude'屬性的ModelForm; CustomUserChangeForm表單需要更新。你能解釋爲什麼我仍然有一個錯誤? – nuradilla

+0

更新了答案,但不好主意嘗試修復所有錯誤的意見 –

+0

感謝您的幫助。我確實很感激:) – nuradilla

相關問題