2012-10-28 43 views
1

我是Django中的新成員,並且我在任何地方都可以找到,但是我沒有找到所需的東西,而且看起來很簡單。 當de用戶上傳新曲目時,我需要在模型曲目中安全取消當前用戶標識。 我只找到了這個:將當前用戶ID保存在django模型中

class Track(models.Model): 
    ... 
    usuari = models.ForeignKey(User) 

但是,這會導致用戶的用戶型動物之間進行選擇。我想在隱藏的營地自動安全地保護當前用戶。

class TrackForm(forms.ModelForm): 
    class Meta: 
     model = Track 

def pujar_track(request): 
if request.method=='POST': 
    formulari = TrackForm(request.POST, request.FILES) 
    if formulari.is_valid():    
     formulari.save() 
     return HttpResponseRedirect('/') 
else: 
    formulari = TrackForm() 

return render(request,'trackForm.html', 
    {'formulari':formulari}) 

謝謝!

回答

2

這是instance參數的用處。

# form 
class TrackForm(forms.ModelForm): 
    class Meta: 
     model = Track 
     exclude = ('useri',) 

# view 
@login_required() 
def pujar_track(request): 
    track = Track(usuari=request.user) 

    if request.method=='POST': 
     formulari = TrackForm(request.POST, request.FILES, instance=track) 
     if formulari.is_valid():    
      formulari.save() 
      return HttpResponseRedirect('/') 
    else: 
     formulari = TrackForm(instance=track) 

    return render(request,'trackForm.html', 
     {'formulari':formulari}) 

所以用戶將被預先填充並且該字段不會顯示給用戶。

完整doc在這裏。

相關問題