は、それがユーザーオブジェクトを作成し、保存しますが、それは、パスワードは保存されません:私はメタフィールドに「パスワード」を追加した場合django-tastypie APIを使用してプログラムでユーザーを登録または登録する方法は?
class CreateUserResource(ModelResource):
class Meta:
allowed_methods = ['post']
object_class = User
authentication = Authentication()
authorization = Authorization()
include_resource_uri = False
fields = ['username']
def obj_create(self, bundle, request=None, **kwargs):
try:
bundle = super(CreateUserResource, self).obj_create(bundle, request, **kwargs)
except IntegrityError:
raise BadRequest('That username already exists')
return bundle
を、それが生のパスワードを保存しないではなく、それをハッシングする。私は間違って何をしていますか?
は、これが私の仕事です:
def obj_create(self, bundle, request=None, **kwargs):
username, password = bundle.data['username'], bundle.data['password']
try:
bundle.obj = User.objects.create_user(username, '', password)
except IntegrityError:
raise BadRequest('That username already exists')
return bundle
最初にユーザーを作成せずに認証を行う方法は? – Burak
RESTの原則を遵守するには、CreateUserResourceの代わりにクラスUserResourceを呼び出す必要があります。それが作成にのみ使用されているという事実はすでにallowed_methods属性で述べられており、クラス名の上にあるdocstringに追加することができます。 –
@DavidW。作成とリスティングに異なる認証方法が必要な場合はどうすればよいでしょうか? – antonagestam