我的 django 網站的一部分是,當用戶從一個模型中洗掉一個值時,它會洗掉另一個模型的欄位中的所有資料。目前我無法從模型中的欄位中過濾掉所有要洗掉的值。我知道我的所有其他代碼都有效,因為作為測驗,我可以做...
delete = Data_Repo1.objects.all()filter(user=request.user)
delete.delete()
當輸入到我下面的代碼中時,這很有效。我的問題是我需要從名為“Data_Repo1”的模型中名為“date1”的欄位中洗掉所有資料,而不是從名為“Date_Repo1”的模型中的所有欄位中洗掉所有資料。我已經厭倦了上面代碼中的“values(“date1”)”和“values_list(“date1”)”代替“.all()”但我收到錯誤“無法在.values()之后呼叫delete()或.values_list()”。我還能如何從一個模型的一個欄位中“過濾”出所有值以洗掉它們?. 代碼如下。提前致謝。
def deletefield_repo1(request, pk):
context = {}
title = get_object_or_404(Field_Repo1, pk=pk) #Title is needed to have the database value to delete
context['title'] = Field_Repo1.objects.values_list('title', flat=True).filter(user=request.user).get(pk=pk) #Just to print the name fo the field to delete for the user
type = Field_Repo1.objects.values_list('type', flat=True).filter(user=request.user).get(pk=pk)
if request.method == "POST":
title.delete()
if type == 'Date1':
delete = Data_Repo1.objects.values('date1').filter(user=request.user)
delete.delete()
return HttpResponseRedirect('/front_page/sheets/repository1user/')
return render(request, 'sheets/delete_fields/repo1_delete_field.html', context)
uj5u.com熱心網友回復:
您可以使用該update()功能,但這不會保存值。
因此,我建議迭代過濾后的查詢集并將欄位更改為None假設null=True在您的模型定義中。
qs_to_remove = Data_Repo1.filter(user=request.user)
for instance in qs_to_remove:
instance.date1 = None
instance.save()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/400924.html
