Mã của tôi dưới đây kinda hoạt động, nó tạo ra các đối tượng người dùng và tiết kiệm nhưng nó không lưu mật khẩu:Làm cách nào để tạo hoặc đăng ký Người dùng bằng cách sử dụng API django-ngonpie theo lập trình?
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
Nếu tôi thêm 'mật khẩu' đến các lĩnh vực Meta sau đó nó lưu mật khẩu thô nhưng không băm nó. Tôi đang làm gì sai?
Vì vậy, đây là những gì làm việc cho tôi:
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
Làm thế nào bạn thực hiện chứng thực mà không cần tạo người dùng đầu tiên? – Burak
Bạn nên gọi lớp UserResource của bạn thay vì CreateUserResource để tôn trọng nguyên tắc REST. Thực tế là nó được sử dụng để tạo ra chỉ đã được nói trong thuộc tính allowed_methods, và có thể được thêm vào một docstring phía trên classname của bạn. –
@DavidW. Bạn sẽ làm điều đó như thế nào nếu bạn cần các phương thức xác thực khác nhau để tạo và liệt kê? – antonagestam