You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am using dj_rest_auth which is forked from django_rest_auth with djangorestframework. I want to update the UserProfile from the same API ,where I create user.
class UserProfile(models.Model):
user = models.OneToOneField(User , related_name='user_profile', on_delete=models.PROTECT)
profile_picture = models.CharField(max_length=400, null=True, blank=True)
contact = models.CharField(max_length=20, unique=True)
dob = models.DateField()
age_group = models.ForeignKey(AgeGroup, on_delete=models.PROTECT)
profession = models.ForeignKey(Profession, on_delete=models.PROTECT)
interested_in = models.ManyToManyField(Interest)
is_married = models.BooleanField(default=False)
country = models.ForeignKey(Country, on_delete=models.PROTECT)
state = models.ForeignKey(State, on_delete=models.PROTECT)
city = models.ForeignKey(City, on_delete=models.PROTECT)
is_profile_completed = models.BooleanField(default=False)
date_added = models.DateTimeField(auto_now_add=True)
date_updated = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'user_profile'
def __str__(self):
return str(self.user.email)
def clean(self):
# Don't allow people less than 18
age_in_days = (datetime.date.today() - self.dob).days
print(age_in_days)
age = age_in_days / 365
print(age)
if age < 18:
raise ValidationError(gettext_lazy('You should be an adult (18+).'))
This is my UserSerializer-
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['pk', 'full_name', 'email', 'is_superuser', 'is_staff', 'is_active',]
read_only_fields = ('email', 'is_superuser', 'is_staff', 'is_staff')
This is my UserProfileSerializer-
class UserProfileSerializer(UserSerializer):
contact = serializers.CharField(source="user_profile.contact")
class Meta(UserSerializer.Meta):
fields = UserSerializer.Meta.fields + ['contact']
def update(self, instance, validated_data):
profile_data = validated_data.pop('user_profile', {})
contact = profile_data.get('contact')
instance = super(UserSerializer, self).update(instance, validated_data)
# get and update user profile
# yet to write complete code
profile = instance.user_profileer
if profile_data and contact:
profile.contact = contact
profile.save()
return instance
I have also defined REST_AUTH_SERIALIZERS for 'USER_DETAILS_SERIALIZER'
'USER_DETAILS_SERIALIZER': 'api.serializers.UserProfileSerializer',
It is giving me same error again and again, Please help me out.
AttributeError at /api/rest-auth/user/
Got AttributeError when attempting to get a value for field `user` on serializer `UserProfileSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `User` instance.
Original exception text was: 'User' object has no attribute 'user'.
Request Method: GET
Request URL: http://localhost:8000/api/rest-auth/user/
Django Version: 3.1.1
Exception Type: AttributeError
Exception Value:
Got AttributeError when attempting to get a value for field `user` on serializer `UserProfileSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `User` instance.
Original exception text was: 'User' object has no attribute 'user'.
Exception Location: /home/gaurav/brandlogist/honest_conversations/env/lib/python3.8/site-packages/rest_framework/fields.py, line 487, in get_attribute
Python Executable: /home/gaurav/brandlogist/honest_conversations/env/bin/python
Python Version: 3.8.6
Python Path:
['/home/gaurav/brandlogist/honest_conversations/brandlogist',
'/usr/lib/python38.zip',
'/usr/lib/python3.8',
'/usr/lib/python3.8/lib-dynload',
'/home/gaurav/brandlogist/honest_conversations/env/lib/python3.8/site-packages']
Server time: Tue, 20 Oct 2020 13:32:50 +0000
The text was updated successfully, but these errors were encountered:
I am using dj_rest_auth which is forked from django_rest_auth with djangorestframework. I want to update the UserProfile from the same API ,where I create user.
This is my CustomUser model-
This is my UserProfile model-
This is my UserSerializer-
This is my UserProfileSerializer-
I have also defined REST_AUTH_SERIALIZERS for 'USER_DETAILS_SERIALIZER'
'USER_DETAILS_SERIALIZER': 'api.serializers.UserProfileSerializer',
It is giving me same error again and again, Please help me out.
The text was updated successfully, but these errors were encountered: