我有一個模型表單,其中有一個我已經從表單中排除的user_id字段。這個表單被製作成模型表單集。我排除用戶字段的原因是因爲它不是可編輯的值。我不希望這個價值去到HTML表單,它可能被頑皮的用戶篡改。將值插入到表單中
當我嘗試保存此模型formset時,出現錯誤,指出user_id不能爲null。在我將視圖保存到formset之前,我需要添加request.user到每個表單。我怎樣才能做到這一點?我知道如何將該值添加到模型的單個實例,但我無法弄清楚如何使用formset來完成此操作。
我有一個模型表單,其中有一個我已經從表單中排除的user_id字段。這個表單被製作成模型表單集。我排除用戶字段的原因是因爲它不是可編輯的值。我不希望這個價值去到HTML表單,它可能被頑皮的用戶篡改。將值插入到表單中
當我嘗試保存此模型formset時,出現錯誤,指出user_id不能爲null。在我將視圖保存到formset之前,我需要添加request.user到每個表單。我怎樣才能做到這一點?我知道如何將該值添加到模型的單個實例,但我無法弄清楚如何使用formset來完成此操作。
如果您沒有將request.user傳遞給表單,則沒有直接的方法可以通過表單的save方法獲取它。
但是有一種方法,如果你希望用戶可以直接從表單的保存方法,從上下文之外。退房,http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser。
當您保存表單集remeber到:
if formset.is_valid():
instances = formset.save(commit=False)
for instance in instances:
instance.user_id = request.user.id
instance.save()
你不需要其他任何東西。 BTW我不明白爲什麼保存用戶ID不是用戶對象?