[英]How do I pass Foreign key value in views.py?
如何訪問 views.py 中的 savedata.project_detail? 每個用戶都可以擁有任意數量的項目。 每個項目將有一個唯一的主鍵。 我想在 def checklist(request) 函數中訪問該主鍵。 我只從 html 模板中獲取模型屬性“checked_value”。 另一個屬性“project_detail”應該自動獲取主鍵 pf 模型“project”。 但是我不知道如何在 def checklist 函數中獲取模型項目的主鍵。 如果有人可以在這里提供幫助。
這是models.py
class project(models.Model):
project_name = models.CharField(max_length = 20)
date = models.DateField(("Date"), default=datetime.date.today)
user = models.ForeignKey(User, on_delete=models.CASCADE)
class check_done(models.Model):
checked_value = models.CharField(max_length = 200)
project_detail = models.ForeignKey(project, to_field="id", db_column="project_detail", on_delete=models.CASCADE)
這是views.py
def show(request):
log_user = request.user
projects = project.objects.filter(user=log_user)
return render(request, 'project.html',{'p':projects})
@login_required(login_url='/login/')
def add(request):
if request.method == "POST":
data = request.POST['data']
new = project(project_name = data, user=request.user)
new.save()
return render(request, 'addproject.html')
else:
return render(request, 'addproject.html')
@login_required(login_url='/login/')
def checklist(request):
if request.method == "POST":
savedata = check_done()
savedata.project_detail = ??
print(savedata.project_detail)
savedata.checked_value = request.POST.get('abc')
savedata.save()
return render(request, 'checklist.html')
else:
return render(request, 'checklist.html')
您需要為 savedata.project_detail 屬性分配一個項目模型:
@login_required(login_url='/login/')
def checklist(request):
if request.method == "POST":
savedata = check_done()
savedata.project_detail = project.objects.get(id=request.POST['project_detail_id'])
savedata.checked_value = request.POST.get('abc')
savedata.save()
return render(request, 'checklist.html')
else:
return render(request, 'checklist.html')
我認為您可以創建或獲取要與savedata
對象關聯的project
對象並將其直接分配給project_detail
屬性,或者您可以將項目主鍵分配給project_detail_id
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.