1 回答

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
是的。您可以在表單中包含該字段,因此您可能應(yīng)該制作一個(gè)單獨(dú)的表單來更新:
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]不僅可以確保該字段在客戶端被禁用,而且還可以防止有人發(fā)出惡意的 POST 請求。
添加回答
舉報(bào)