Ale*_*art 2 python django modelform
如果我使用模型表单,我的views.py看起来像:
def dog_image_upload(request):
if request.user.is_authenticated():
if request.method == 'POST':
form = DogImageForm(request.POST, request.FILES)
if form.is_valid():
form.save()
else:
form = DogImageForm(user)
return render_to_response("dog-image-upload.html", {'form': form}, context_instance=RequestContext(request))
else:
return HttpResponseRedirect('/')
Run Code Online (Sandbox Code Playgroud)
在model.py中,我想这样做:
class DogImageForm(ModelForm):
dogs = forms.ModelChoiceField(queryset=Dog.objects.filter(user=request.user))
class Meta:
model = ResultsUpload
fields = ['dogs','image']
Run Code Online (Sandbox Code Playgroud)
但是,我无法尝试将用户发送到model.py这方面的帮助将是非常棒的,值得点!
你必须在模型中做到这一点 __init__
class DogImageForm(ModelForm):
dogs = forms.ModelChoiceField(queryset=Dog.objects.none())
class Meta:
model = ResultsUpload
def __init__(self, user, *args, **kwargs):
super(DogImageForm, self).__init__(*args, **kwargs)
self.fields['dogs'].queryset = Dog.objects.filter(user=user)
Run Code Online (Sandbox Code Playgroud)
在表单初始化期间,
form = DogImageForm(user=request.user)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2760 次 |
| 最近记录: |