Search code examples
djangodjango-modelsdjango-viewsdjango-forms

Seller object has no attribute profile


I am developing a django website where seller can open their accounts and update their profiles,so while while creating seller account I want to create a profile objects,my code of user registration form is given below,

class UserRegisterForm(UserCreationForm):
email = forms.EmailField(required=True)
date_of_birth = forms.DateField(required=True, 
input_formats=settings.DATE_INPUT_FORMATS)

class Meta:
    model = User
    fields = ['username', 'email', 'date_of_birth', 'password1', 

'password2']

def save(self, commit=True):
    date_of_birth = self.cleaned_data.pop('date_of_birth', None)
    user = super(UserRegisterForm, self).save(commit)
    seller = Seller.objects.create(name=user.username, 
    date_of_birth=date_of_birth, created_by=user)
    profile = Profile.objects.create(seller=seller)
    return user

my code for become_seller in views.py is,

def become_seller(request):
if request.method == 'POST':
    form = UserRegisterForm(request.POST)

    if form.is_valid():
        form.save()
        return redirect('seller_dashboard')  

else:
    form = UserRegisterForm()
return render(request, 'become_seller.html',{'form':form})

all of this is working fine,but when I go for edit profile,my code for edit in views.py is,

@login_required
def edit(request):
    if request.method == 'POST':
        profile_form = 
                 ProfileEditForm(instance=request.user.seller.profile, 
                 data=request.POST, files=request.FILES)
        if profile_form.is_valid():
             profile_form.save()

    else:
        profile_form = 
                 ProfileEditForm(instance=request.user.seller.profile)

   return render(request, 'profile_edit.html', 
   {'profile_form':profile_form})

so,while working for this I found the following error message AttributeError at /seller/edit/ 'Seller' object has no attribute 'profile' can anyone help me to sort out this issue please


Solution

  • try register also ListingAdmin like admin.site.register(Listing, ListingAdmin) instead of trying to register only model class