我正在尝试登录我在我的注册视图中注册的用户(我得到一个 200 代码,表示 POST 请求成功),但我收到“无法使用提供的凭据登录”。当我尝试登录它们时。当我使用 User.objects.all() 在 shell 中检查时,我只恢复了我的超级用户,所以我认为用户没有被保存到数据库中。我不明白为什么会发生这种情况,所以如果有人有想法,将不胜感激。
这是代码。
楷模:
from django.db import models, transaction
from django.conf import settings
from django.contrib.auth.models import BaseUserManager, AbstractUser
class UserManager(BaseUserManager):
@transaction.atomic
def create_user(self, email, username, password=False):
if not email:
raise ValueError('Users must have an email address')
if not username:
raise ValueError('Users must have an username')
user = self.model(
email=self.normalize_email(email),
username=username,
)
user.set_password(password)
user.save()
return user
def get_by_natural_key(self, username):
return self.get(username=username)
def create_superuser(self, username, password, email):
user = self.create_user(
username=username,
email=email,
password=password,
)
user.is_superuser …Run Code Online (Sandbox Code Playgroud) 我试图在函数内部返回一个函数(返回一个字符串),但是,由于我没有明确说明这一点(我不确定如何制作它以便函数知道它将返回一个函数),结果我得到了 kotlin.Unit 。
这是函数:
fun takeOutArticle(code:String) {
fun onSuccess(finalPrice: Int): String {
return "Your price is $finalFee."
}
fun onError(): String {
return "Error."
}
val articlesCode = house.articles.find{ it.code == code }
if (articlesCode != null) {
val finalPrice = calculatePrice(
articleType = articlesCode.articleCode,
finalTime = articlesCode.finalTime.toInt(),
hasCard = !articlesCode.Card.isNullOrEmpty())
onSuccess(finalPrice)
} else {
onError()
}
Run Code Online (Sandbox Code Playgroud)
因此,当我调用该函数时,无论它是否成功,它都会返回 unit,但我需要它返回 onSuccess 或 onError 内部的字符串。我怎样才能做到这一点?谢谢。