我试图向登录的用户显示一个表单,在这个表单中他们可以输入name
和sensitivity
,但是这需要与登录的用户相关联(当前尝试使用外键和init)。这是我的方法:
视图:
@login_required
def restricted(request):
context = RequestContext(request)
if request.method == 'POST':
form = TrackForm(request.user, request.POST)
if form.is_valid():
form.save(commit=True)
return index(request)
else:
print form.errors
else:
form = TrackForm()
return render_to_response('tracker/restricted.html', {'form': form}, context)
表格:
class TrackForm(forms.ModelForm):
name = forms.CharField(help_text="Please enter a name")
sensitivity = forms.IntegerField(help_text="Sensitivity: 1=Low Sensitivity, 2=Standard Sensitivity, 3=Highly Sensitive", initial=0)
def __init__(self, user, *args, **kwargs):
self.user = user
super(TrackForm, self).__init__(*args, **kwargs)
class Meta:
model = ToTrack
fields = ('name','sensitivity')
型号:
class ToTrack(models.Model):
name = models.CharField(max_length=128)
sensitivity = models.IntegerField(default=0)
user = models.ForeignKey(User)
def __unicode__(self):
return self.name
我当前收到错误消息:
TypeError at /tracker/restricted/
__init__() takes at least 2 arguments (1 given)
更改
views.py
如下(我注释更改行):把
form
改成这样:相关问题 更多 >
编程相关推荐