2015-12-03 4 views
1

Вопрос, который я встречаю, заключается в том, что когда я использую UserReg.objects.create(), он будет сообщать обо всем выше. И я действительно искал решение для солнечных часов, но это не сработало. Поэтому я хочу знать, где я ошибаюсь, и как я могу ее исправить?TypeError at/UserRegis/__init __() получил неожиданный аргумент ключевого слова 'username'

PS: простите меня бедный английский, спасибо большое.

Прошу прощения, этот код является частью всех кодов, и я просто публикую некоторые.

my total project is

  • проект/
    • app1/...
    • app2/...
    • other_general (manage.py и т.д.) ====== Я буду размещать все файлы =======

app1/models.py

from django.db import models 
 
from django.contrib.auth.models import AbstractUser 
 
from app2.models import SocialMed,Article 
 

 

 
class UserReg(AbstractUser): 
 

 
    nickname = models.CharField( max_length = 32 ,null = True, blank = True) 
 
    avatar = models.ImageField(upload_to = '/media/client/avatar/%Y/%m/%d/' , null = True, blank = True) # need to refer to something 
 
    signature = models.CharField(max_length = 200, null = True , blank = True) 
 
    user_uuid = models.IntegerField(null = True , blank = True,unique = True) 
 
    user_focus = models.ManyToManyField(SocialMed ,null = True , blank = True) 
 
    user_favor_article = models.ManyToManyField(Article, null = True, blank = True) 
 

 

 
    def __unicode__(self): 
 
     return self.nickname 
 

 
    class Meta(AbstractUser.Meta): 
 
     swappable = 'AUTH_USER_MODEL' 
 
    
 
    def __init__(self,nickname): 
 
      nickname = 'None' 
 
      return nickname 
 
    

app1/views.py

from django.shortcuts import render 
 
from django.contrib.auth.decorators import login_required 
 
from client.models import UserReg 
 
from app2.models import Article, SocialMed 
 

 

 

 
def userRegiste(request): 
 

 
    if request.method == 'POST': 
 
     user_name = request.POST.get('username') 
 
     pass_word = request.POST.get('password') 
 
     user_mail = request.POST.get('user_mail') 
 
     clienter = UserReg.objects.create_user(username=user_name, password = pass_word,email = user_mail) 
 
     print clienter 
 
     return render(request, 'register.html') 
 
    else: 
 
     return render(request, 'register.html')

TRACEBACK

Traceback Switch to copy-and-paste view 
 

 
C:\Python27\lib\site-packages\django\core\handlers\base.py in get_response 
 
        response = middleware_method(request, callback, callback_args, callback_kwargs) 
 
        if response: 
 
         break 
 
      if response is None: 
 
       wrapped_callback = self.make_view_atomic(callback) 
 
       try: 
 
           response = wrapped_callback(request, *callback_args, **callback_kwargs) ... 
 
       except Exception as e: 
 
        # If the view raised an exception, run it through exception 
 
        # middleware, and if the exception middleware returns a 
 
        # response, use that. Otherwise, reraise the exception. 
 
        for middleware_method in self._exception_middleware: 
 
         response = middleware_method(request, e) 
 
▶ Local vars 
 
E:\django_file\zuiwan\client\views.py in userRegiste 
 
def userRegiste(request): 
 
    if request.method == 'POST': 
 
     user_name = request.POST.get('username') 
 
     pass_word = request.POST.get('password') 
 
     user_mail = request.POST.get('user_mail') 
 
        clienter = UserReg.objects.create_user(username=user_name, password = pass_word,email = user_mail) ... 
 
     print clienter 
 
     return render(request, 'register.html') 
 
    else: 
 
     return render(request, 'register.html') 
 
▶ Local vars 
 
C:\Python27\lib\site-packages\django\contrib\auth\models.py in create_user 
 
              **extra_fields) ... 
 
▶ Local vars 
 
C:\Python27\lib\site-packages\django\contrib\auth\models.py in _create_user 
 
             date_joined=now, **extra_fields) ... 
 
▶ Local vars

, что все, и я действительно нужна ваша какие-либо советы, пожалуйста

+0

Не могли бы вы опубликовать 'urls.py', пожалуйста? –

+0

Я опубликовал его. –

+0

URL-адреса не отображаются. Но, пожалуйста, отправьте полный ответ. '__init__' чего? –

ответ

1

Заменить

clienter = UserReg.objects.create_user(user_name, password = pass_word,email = user_mail) 

с

clienter = UserReg.objects.create_user(username=user_name, password = pass_word,email = user_mail) 
+0

Извините, я попробовал много раз, но это не сработало. Теперь у меня была почта urls.py здесь. Можете ли вы это исправить? :( –

0

Вы можете попробовать это по-другому ,

user = UserReg() 
user.username = user_name 
user.email = user_mail 
user.set_password(pass_word) 
user.save() 

и попробовать, добавив это в модели пользователя

class Meta(AbstractUser.Meta): 
     swappable = 'AUTH_USER_MODEL' 
+0

, когда я запускаю первую строку: TypeError: __init __() принимает ровно 2 аргумента (1 данный) –

+0

, который '__init__'? –

+0

Тест выше изменений –

Смежные вопросы