我正在設置一個設置界面,它通過掃描已安裝應用程序中的設置文件夾,掃描設置文件並最終掃描ModelForms來工作。django:使用查詢集作爲modelform初始數據
我現在正在最後一步。表格被正確找到並加載,但我現在需要提供初始數據。初始數據將從數據庫中提取,並且,如您所想,它必須僅限於經過身份驗證的用戶(通過request.user.id)。
請記住,這一切都是動態完成的。沒有任何名稱,也沒有他們的結構是先進的(我真的不想維護一個無聊的設置界面)。
下面是一個示例設置窗體。我只是選擇模型和用戶可以編輯的字段(這是我想要維護設置界面的程度)。
class Set_Personal_Info(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('nick_name', 'url')
我已經看了其中modelformset_factory幾乎做什麼,我想做的事情,但似乎只與兩個或多個結果工作。 (在這裏,OBJ是的設置形式之一)
Formset = modelformset_factory(obj.Meta.model, form=obj)
Formset(queryset=obj.Meta.model.objects.filter(id=request.user.id))
我不能過濾數據,我得一個,只有一個結果。不幸的是,我不能使用get()
Formset = modelformset_factory(obj.Meta.model, form=obj)
Formset(queryset=obj.Meta.model.objects.get(id=request.user.id))
「用戶」對象有沒有屬性「有序」
提供查詢結果作爲初始數據也不起作用,因爲它不是一個名單。
Formset = modelformset_factory(obj.Meta.model, form=obj)
Formset(initial=obj.Meta.model.objects.get(id=request.user.id))
「用戶」對象不支持索引
我有一種感覺,答案就在我的面前。我如何從數據庫中提取數據庫並將其作爲初始值推送到表單中?