2

私はdjangoが初めてで、非常に混乱しています。angular アプリケーションのバックエンド API として django を使用しています。

User モデルにさらに詳細を追加したいので、以下を追加しましたmodels.py

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

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    company_name = models.CharField(max_length=100)

アプリケーションを使用して残りの認証サポートを追加しています: https://github.com/Tivix/django-rest-auth

このアプリケーションを使用して、POST 要求を実行する次の URL でユーザー プロファイルを編集できます。http://localhost:8080/rest-auth/user/

質問

カスタム フィールドを更新するにはどうすればよいcompany_nameですか? ユーザープロファイルの編集中?

私が試したこと

アプリケーションが提供するUserDetailsSerializerをオーバーライドしようとしましたが、効果がありません。これは私が自分のアプリケーションに追加しようとしたものですserializers.py

class UserProfileSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.UserProfile
        fields = ('company_name',)

class UserDetailsSerializer(serializers.ModelSerializer):
    profile = UserProfileSerializer(required=True)
    class Meta:
        model = models.User
        fields = ('id', 'username', 'first_name', 'last_name', 'profile')
4

1 に答える 1

0

django rest フレームワークを使用している場合、基本的には、ユーザー ID を要求パラメーターとして受け取る UserProfile のビュー クラスに update メソッドが必要です。次に、そのメソッドで、ORM を使用して、指定されたユーザー プロファイル ID のモデル オブジェクトを取得し、パラメーターとしても渡されたプロパティを設定し、変更されたモデル オブジェクトを保存します。次に、成功応答を生成して返します。

これを行う方法について詳しくは、http ://www.django-rest-framework.org/api-guide/views/ をご覧ください。

于 2015-02-11T08:16:32.790 に答える