檔案夾結構 在這里輸入圖片描述
來自face_detect的models.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Profile(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE,null=True)
mobile = models.CharField(max_length=10,null=True)
add = models.CharField(max_length=10,null=True)
image = models.FileField(null=True)
def __str__(self):
return self.user.username
來自otp的models.py
from django.db import models
from django.contrib.auth.models import User
from face_detect.models import Profile
import random
# Create your models here.
class Code(models.Model):
number = models.CharField(max_length=5, blank=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
def __str__(self):
return str(self.number)
#otp verification
def save(self, *args, **kwargs):
number_list = [x for x in range(10)]
code_items = []
for i in range(5):
num = random.choice(number_list)
code_items.append(num)
code_string = "".join(str(item) for item in code_items)
self.mobile = code_string
super().save(*args,**kwargs)
來自 otp 的信號.py
from face_detect.models import Profile
from django.contrib.auth.models import User
from .models import Code
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=User)
def post_save_generate_code(sender, instance, created, *args, **kwargs):
if created:
Code.objects.create(user=instance)
來自otp的apps.py
from django.apps import AppConfig
class OtpConfig(AppConfig):
name = 'otp'
def ready(self):
import otp.signals
從 otp初始化.py
default_app_config = 'otp.apps.OtpConfig'
來自 otp 的 admin.py
from django.contrib import admin
from .models import Code
# Register your models here.
admin.site.register(Code)
在http://127.0.0.1:8000/admin/otp/code/ 中 看到的代碼在此處輸入影像描述
代碼不可見。
如何使代碼可見,以便我可以在登錄時使用它進行 otp 驗證。
提前致謝
uj5u.com熱心網友回復:
在管理頁面中,您將看到該__str__方法,因此您的代碼似乎沒有任何問題,很可能您的代碼實體的值是“”,還有另一件事
def __str__(self):
return str(self.number)
你不需要將它轉換為 str 這里它已經是 char 欄位,另一件事在這里:
def __str__(self):
return self.user.username
在Profile模型中,您將用戶設為可空,因此這意味著并非所有組態檔實體都可能沒有用戶,因此您將其NoneType has no attribute username
更改為此以防止出現此錯誤:
def __str__(self):
return self.user.username if self.user else ""
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/349985.html
標籤:姜戈 django-models django-信号 django-apps
上一篇:盡管解決了“django.core.excptions.ImproperlyConfigured:TheTEMPLATE_DIRSsettingmustbealistoratuple”錯誤,但串列和元
