回傳用戶名而不是 user.id,我嘗試在 user_id 欄位中獲取 user.id 但獲取用戶名,用戶 id 欄位注冊為用戶的 forignkey 欄位,因此它僅回傳數字 views.py
def index(request):
if request.user.is_authenticated:
cus = User.objects.get(pk=request.user.id)
print(cus)
if request.method == 'POST':
task = request.POST['task']
priority = request.POST['priority']
date = request.POST['date']
time = request.POST['time']
add_task = AddTodo(task=task, priority=priority, date=date, time=time, user_id=cus)
add_task.save()
if add_task is not None:
print("task added suuccesfuly", task)
else:
print("task not added", task)
return render(request, 'index.html')
模型.py
class AddTodo(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
task = models.CharField(max_length=100, blank=True)
priority = models.IntegerField()
date = models.DateField()
time = models.TimeField()
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
例外:
TypeError: Field 'id' expected a number but got <User: captainamerica123>.
uj5u.com熱心網友回復:
您user_id在創建AddToDo物件時將用戶物件傳遞給了。如果要創建 with user_id,則必須傳遞用戶 ID 而不是用戶物件。當然,您可以使用用戶物件創建。因此,您可以按如下方式更新代碼
add_task = AddTodo(task=task, priority=priority, date=date, time=time, user_id=cus.id)
或者
add_task = AddTodo(task=task, priority=priority, date=date, time=time, user=cus)
兩者都會起作用。
uj5u.com熱心網友回復:
def index(request):
if request.user.is_authenticated:
cus = User.objects.get(pk=request.user.id)
print(cus)
if request.method == 'POST':
task = request.POST['task']
priority = request.POST['priority']
date = request.POST['date']
time = request.POST['time']
add_task = AddTodo(task=task, priority=priority, date=date, time=time, user_id=cus.id)
add_task.save()
if add_task is not None:
print("task added suuccesfuly", task)
else:
print("task not added", task)
return render(request, 'index.html')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/371530.html
