/ register / 'AnonymousUser'개체의 TypeError는 반복 할 수 없습니다.

user13080604

저는 현재 블로깅 웹 앱을 개발 중이며 장고 사용자 프레임 워크를 일대일 필드로 확장하려고 시도했지만 모든 것이 잘 작동하지만 새 사용자를 등록하려고하면 TypeError가 발생합니다. 사용자가 생성되고 저장되고 있다는 점도 주목할 가치가 있습니다 (관리 페이지에서 확인했습니다).

profile.user = Profile.objects.get(user=request.user)내 views.py 의이 진술이 문제를 일으킨다는 것입니다.

내 models.py :

from django.db import models
from django.contrib.auth.models import User


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='default.jpg', upload_to='profile_pics')
    CHOICES = (
        ('AB+', 'AB+'),
        ('AB-', 'AB-'),
        ('A+', 'A+'),
        ('A-', 'A-'),
        ('B+', 'B+'),
        ('B-', 'B-'),
        ('O+', 'O+'),
        ('O-', 'O-'),
        )
    bloodgroup = models.CharField(max_length=100, choices= CHOICES)
    bio = models.TextField(max_length=300)

    def __str__(self):
        return f'{self.user.username} Profile'

내 views.py

from django.shortcuts import render, redirect
from .models import Profile
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from .forms import UserRegisterForm, ProfileForm


def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        profile_form = ProfileForm(request.POST)
        if form.is_valid() and profile_form.is_valid():
            form.save()
            profile = profile_form.save(commit=False)
            profile.user = Profile.objects.get(user=request.user)  
            profile.save()

            username = form.cleaned_data.get('username')
            messages.success(request, f'Your account has been created! You are now able to log in')
            return redirect('login')
    else:
        form = UserRegisterForm()
        profile_form = ProfileForm
    return render(request, 'users/register.html', {'form': form, 'profile_form': profile_form})

@login_required
def profile(request):
    return render(request, 'users/profile.html')

내 signal.py

from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver
from .models import Profile


@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)


@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
    instance.profile.save()
러 드라

당신이 쓴 두 신호는 불필요하다고 생각합니다. 또한이 줄은 다음 중 하나에서도 작동하지 않습니다.

profile.user = Profile.objects.get(user=request.user)  

아직 로그인하지 않았기 때문입니다. 로그인하지 않으면 여기에서 사용자 인스턴스를 가져올 수 없습니다. 그러나 필요가 없습니다. 왜냐하면 다른 양식에서 사용자 인스턴스를 가져올 수 있기 때문입니다. 이렇게 :

def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        profile_form = ProfileForm(request.POST, request.FILES)
        if form.is_valid() and profile_form.is_valid():
            user = form.save()
            profile = profile_form.save(commit=False)
            profile.user = user  
            profile.save()

            username = form.cleaned_data.get('username')
            messages.success(request, f'Your account has been created! You are now able to log in')
            return redirect('login')
    else:
        form = UserRegisterForm()
        profile_form = ProfileForm()
    return render(request, 'users/register.html', {'form': form, 'profile_form': profile_form})

또한이 두 신호를 제거해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Django 'logout'TypeError : 'AnonymousUser'개체는 반복 할 수 없습니다.

분류에서Dev

Django Middleware- 'AnonymousUser'개체는 반복 할 수 없습니다.

분류에서Dev

Django 컨텍스트 프로세서 'AnonymousUser'개체는 반복 할 수 없습니다.

분류에서Dev

TypeError : 개체 상태의 변수는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'numpy.bool_'개체는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'UniqueConstraint'개체는 Django에서 반복 할 수 없습니다.

분류에서Dev

Python-TypeError : 'NoneType'개체는 반복 할 수 없습니다.

분류에서Dev

TypeError : '외계인'개체는 반복 할 수 없습니다.

분류에서Dev

/ flightdetails / airlines / 1 'Airlines'개체의 TypeError는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'WindowsPath'유형의 인수는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'Item'유형의 인수는 반복 할 수 없습니다.

분류에서Dev

다중 처리 : TypeError : 'int'개체는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'float'유형의 객체에는 len ()이 없습니다. & TypeError : 'float'객체는 반복 할 수 없습니다.

분류에서Dev

pyauto gui TypeError : 'int'객체는 반복 할 수 없습니다.

분류에서Dev

TypeError 객체는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'int'개체는 반복 할 수 없습니까?

분류에서Dev

TypeError : 'int'개체는 반복 할 수 없습니까?

분류에서Dev

/ api / register / '모듈'개체의 TypeError를 호출 할 수 없습니다.

분류에서Dev

TypeError : "username '개체는 python3에서 반복 할 수 없습니다.

분류에서Dev

TypeError : 'int'개체는 반복 할 수 없습니다. 파이썬 2.7

분류에서Dev

Django TypeError : "User"개체는 직렬화 중에 반복 할 수 없습니다.

분류에서Dev

'NoneType'개체를 해결할 수 없음은 반복 할 수 없습니다 .TypeError

분류에서Dev

TypeError : 'Transaction'객체는 Python 3.6의 Flask에서 반복 할 수 없습니다.

분류에서Dev

'NoneType'개체는 반복 할 수 없습니다.

분류에서Dev

to_representation 오류 : 'NoneType'개체는 반복 할 수 없습니다.

분류에서Dev

to_representation 오류 : 'NoneType'개체는 반복 할 수 없습니다.

분류에서Dev

'builtin_function_or_method'개체는 반복 할 수 없습니다.

분류에서Dev

'builtin_function_or_method'개체는 반복 할 수 없습니다.

분류에서Dev

NoneType 개체는 반복 할 수 없습니다.

Related 관련 기사

  1. 1

    Django 'logout'TypeError : 'AnonymousUser'개체는 반복 할 수 없습니다.

  2. 2

    Django Middleware- 'AnonymousUser'개체는 반복 할 수 없습니다.

  3. 3

    Django 컨텍스트 프로세서 'AnonymousUser'개체는 반복 할 수 없습니다.

  4. 4

    TypeError : 개체 상태의 변수는 반복 할 수 없습니다.

  5. 5

    TypeError : 'numpy.bool_'개체는 반복 할 수 없습니다.

  6. 6

    TypeError : 'UniqueConstraint'개체는 Django에서 반복 할 수 없습니다.

  7. 7

    Python-TypeError : 'NoneType'개체는 반복 할 수 없습니다.

  8. 8

    TypeError : '외계인'개체는 반복 할 수 없습니다.

  9. 9

    / flightdetails / airlines / 1 'Airlines'개체의 TypeError는 반복 할 수 없습니다.

  10. 10

    TypeError : 'WindowsPath'유형의 인수는 반복 할 수 없습니다.

  11. 11

    TypeError : 'Item'유형의 인수는 반복 할 수 없습니다.

  12. 12

    다중 처리 : TypeError : 'int'개체는 반복 할 수 없습니다.

  13. 13

    TypeError : 'float'유형의 객체에는 len ()이 없습니다. & TypeError : 'float'객체는 반복 할 수 없습니다.

  14. 14

    pyauto gui TypeError : 'int'객체는 반복 할 수 없습니다.

  15. 15

    TypeError 객체는 반복 할 수 없습니다.

  16. 16

    TypeError : 'int'개체는 반복 할 수 없습니까?

  17. 17

    TypeError : 'int'개체는 반복 할 수 없습니까?

  18. 18

    / api / register / '모듈'개체의 TypeError를 호출 할 수 없습니다.

  19. 19

    TypeError : "username '개체는 python3에서 반복 할 수 없습니다.

  20. 20

    TypeError : 'int'개체는 반복 할 수 없습니다. 파이썬 2.7

  21. 21

    Django TypeError : "User"개체는 직렬화 중에 반복 할 수 없습니다.

  22. 22

    'NoneType'개체를 해결할 수 없음은 반복 할 수 없습니다 .TypeError

  23. 23

    TypeError : 'Transaction'객체는 Python 3.6의 Flask에서 반복 할 수 없습니다.

  24. 24

    'NoneType'개체는 반복 할 수 없습니다.

  25. 25

    to_representation 오류 : 'NoneType'개체는 반복 할 수 없습니다.

  26. 26

    to_representation 오류 : 'NoneType'개체는 반복 할 수 없습니다.

  27. 27

    'builtin_function_or_method'개체는 반복 할 수 없습니다.

  28. 28

    'builtin_function_or_method'개체는 반복 할 수 없습니다.

  29. 29

    NoneType 개체는 반복 할 수 없습니다.

뜨겁다태그

보관