1

オブジェクトを作成したユーザーを保存する方法を見つけようとしていますが、それを自動的に行いたいです。私はいくつかのものを見つけましたが、何もうまくいきません。コードは次のとおりです。

Models.py:

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

Forms.py:

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

Views.py

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

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

私はプットについて見てきました:

usuari = models.ForeignKey(User, blank=True, editable=False) but

しかし、いつフィールドにユーザーを設定できるかわかりません。

アドバイスありがとう!

4

1 に答える 1

3

usuariから隠すことができるTrackFormので、ユーザーはそれを選択できません:

class TrackForm(forms.ModelForm):   
    class Meta:
        model = Track
        exclude = ('usuari',)

そして、あなたformulari.save()を次のものに置き換えます:

track = formulari.save(commit=False)
track.user = request.user
track.save()

これは一般的な使用例であり、Django docsで詳しく説明されています。

于 2013-02-25T19:40:17.970 に答える