亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django postgress 給出 psycopg2.errors.

Django postgress 給出 psycopg2.errors.

慕后森 2023-12-05 15:00:50
下面是我的模型Windows 10,postgress 12,django 3.0.7,python 3.7.6class User(AbstractBaseUser, PermissionsMixin):    email = models.CharField(max_length=30)    password = models.CharField(max_length=4000)    first_name = models.CharField(default='', max_length=15)    last_name = models.CharField(default='', max_length=15)    login = models.CharField(max_length=15)    age = models.IntegerField()    street = models.CharField(blank=True, max_length=255)    city = models.CharField(blank=True, max_length=255)    zip = models.CharField(blank=True, max_length=10)    role = models.CharField(default='', max_length=10)    USERNAME_FIELD = 'email'當我發出發布請求時,出現以下錯誤File "C:\Users\Akila\Anaconda3\lib\site-packages\django\db\backends\utils.py", line 86, in _execute    return self.cursor.execute(sql, params)psycopg2.errors.NotNullViolation: null value in column "id_id" violates not-null constraintDETAIL:  Failing row contains (null, default).這是被調用的我的注冊視圖。@靜態方法@api_view(['POST'])def sign_up(request):    logging.debug("Trying to register a new user")    data = common_methods.get_request_data(request)    print(data)    if check_user_exists(data['email']):        return JsonResponse({'message': 'User with this email already exists'},status=status.HTTP_400_BAD_REQUEST)    print(data['email'])    create_user(data['email'], data['password'], data['fullName'])    refresh = CustomTokenObtainPairSerializer.get_token(        get_user_by_email(email=data['email']))    return JsonResponse({'token': {        'access_token': str(refresh.access_token),        'expires_in': str(refresh.access_token.lifetime.seconds),        'refresh_token': str(refresh)    }})
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

實際上我在 create_user() 方法中有這個


 user_settings = UserSettings(id=user.id, theme='default')

 user.save()

 user_settings.save()

根據上面的代碼 user.id 實際上是 null 。id 在用戶保存到數據庫后被分配。必須將其更改為下面才能使其正常工作


try:

    user.save()

except Exception as e:

    print(str(e))

    raise Exception("Sorry couldn't save the user with email : " + user.email)


if check_user_exists(user.email):

    user = get_user_by_email(email=user.email)

    user_settings = UserSettings(id_id=user.id, theme='default')

    user_settings.save()

else:

    raise Exception("Sorry couldn't find the user with email : " + user.email)


查看完整回答
反對 回復 2023-12-05
  • 1 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號