簡體   English   中英

Django不是REST-API用戶注冊

[英]Django not REST - API user registration

我有一個大三的第一個項目。 它很老(Django 1.8),是正常的django框架...不是REST。

它支持網絡和移動。

我必須為移動設備創建端點才能創建用戶。

我認為(創建)這不是問題,但我想確保它可以保存。

首先,我認為我將創建普通的ModelForm(基於model = User的RegisterAPIForm,具有完整驗證(我的意思是初始化用戶不可見的“后端”中的所有字段|所有字段的cleaned_data |特殊的覆蓋方法save())除了散列密碼,然后發送電子郵件),然后在“視圖”中添加以下內容:

class RegistrationAPITestView(View):
   def post(self, request):
       form = RegistrationAPIForm(
           request.POST
       )
       if form.is_valid():
           form.save()
           return JsonResponse({})
       else:
           #check errors and send error code back

還是我應該通過使用User對象來做其他方式?

class RegistrationAPITestView(View):
       def post(self, request):
           #check if user does not exist
           #password1 and password2 validation
           user = User.objects.create()
           user.name = request.POST['username']
           user.set_password(request.POST['password'])
           #init all fields that user can't choose like groups etc
           user.save()

你怎么看? 我需要甚至不渲染的ModelForm嗎? 這似乎更安全,但也許我應該以其他方式檢查它? 與用戶對象?

順便說一句。 Web的注冊表單已經存在,但是我不需要很多“網絡”內容,也不必檢查,還有另一種保存密碼的方法,因此我認為我應該創建一個新的。

我的代碼將在2周內(高級假期)進行修改,但是現在我很孤單,並且想盡我最大的努力。

第二種選擇沒有什么問題,但是這是您作為初中生應該避免的問題。 此行將使服務器返回一個500錯誤request.POST['username']因為如果用戶不提供用戶名,python會拋出一個關鍵錯誤,只需將其更改為request.POST.get('username', 'value if doesn\\'t exit')還應確保在創建用戶之前一切都准備就緒,否則數據庫中將沒有有用的記錄。 還將驗證程序稱為密碼,並嘗試涵蓋所有可能的情況。 記住永遠不要信任用戶

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM