我有一个“农场”模型和相应的ModelForm如下:的Django的ModelForm更新某些领域
class FarmForm(ModelForm):
class Meta:
model = Farm
fields = ['farm_name','address','farm_size', 'latitude', 'longitude']
我可以节省通过我的客户端应用程序新农场对象(它要求我填写在我的ModelForm中提到的所有领域)。
我想有另一种观点认为在那里我可以更新现有农场,用户可以或许插入/更新只有他/她想要改变的字段。我想是这样仅通过邮路的字段值之一以下,但它给了我Form_not_valid错误:
@api_view(['POST'])
def updateFarm(request, farmId):
farm = Farm.objects.get(id=farmId)
form = FarmForm(instance=farm, data=request.POST)
if form.is_valid():
farm = form.save()
farm = Farm.objects.filter(id=farm.id)
serializer = FarmSerializer(farm, many=True)
return JSONResponse(serializer.data)
#return Response("Data saved")
else:
return Response("Form not valid, insert correct fields.")
如何建立我的观点,让我们的用户更新只有那些他认为字段相关?我的网址:url(r'^farms/update/(?P<farmId>\d\d)/$', views.updateFarm),
您想调用form is_valid,但您的表单将如何知道用户想要更改哪些字段并仅验证这些字段? – fips