1 回答

TA貢獻1883條經驗 獲得超3個贊
是的。您可以在表單中包含該字段,因此您可能應該制作一個單獨的表單來更新:
class ServiceEditForm(forms.ModelForm):
service_sku = forms.IntegerField(disabled=True)
class Meta:
model = Services
fields = ('service_sku', 'name', 'price')
在表單中,您只需使用該新表單:
def EditServices(request,pk):
service = Services.objects.get(service_sku=pk)
if request.method == 'POST':
form = ServiceEditForm(request.POST, request.FILES, instance=service)
if form.is_valid():
form.save()
return redirect('/')
else:
form = ServiceEditForm(instance=service)
context = {'form':form}
return render(request, 'accounts/edit_services.html', context)
使用disabled=True
[Django-doc]不僅可以確保該字段在客戶端被禁用,而且還可以防止有人發出惡意的 POST 請求。
添加回答
舉報