【发布时间】:2014-03-19 00:02:04
【问题描述】:
我是 Django 新手,我正在启动一个 Django 应用程序,我正在使用注册应用程序和 Django rest 框架,这个应用程序也将作为 iOS 应用程序的后端,我已经设法从iOS应用程序并从浏览器编辑用户配置文件,我需要帮助找到一种方法,让用户在登录后编辑他的配置文件详细信息。我尝试将“user.username”之类的lookup_field设置为UserProfileViewSet,以便我可以访问UserProfile 对象并对其进行编辑,但这不起作用。
我还认为我可以在登录后以某种方式返回用户 ID 并使用此 ID 来引用我想要编辑的用户配置文件,但这似乎根本不实用。你怎么看?
我发现执行此操作的其他方法是调用 user.get_profile() 但我不知道如何从 iOS 应用程序中完成这项工作。
这是我的 UserProfile 模型和序列化程序,任何帮助都会很棒。谢谢
class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True)
# Extra attribuets
pagetitle = models.TextField(null=False)
location = models.TextField(null=True)
website = models.TextField(null=True)
bio = models.TextField(null=True)
sex = models.TextField(null=True)
birthdate = models.DateField(null=True)
def __unicode__(self):
return "%s's profile" % self.user
def create_profile(sender, instance, created, **kwargs):
if created:
profile, created= UserProfile.objects.get_or_create(user=instance)
post_save.connect(create_profile, sender=User)
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('username','email','password')
class UserProfileSerializer(serializers.HyperlinkedModelSerializer):
user = UserSerializer(many=False)
class Meta:
model = UserProfile
fields = ('user','bio')
我使用这样的信号创建用户配置文件
def create_profile(sender, instance, created, **kwargs):
if created:
profile, created= UserProfile.objects.get_or_create(user=instance)
post_save.connect(create_profile, sender=User)
【问题讨论】:
标签: ios django django-rest-framework lookup-field