django表单为关键字参数获取了多个值

17 浏览
0 Comments

django表单为关键字参数获取了多个值

我有一个简单的模型如下所示:

RATING_CHOICES = zip(range(1, 6), range(1, 6))
class Rating(models.Model):
    value = models.IntegerField(choices=RATING_CHOICES)
    additional_note = models.TextField(null=True, blank=True)
    from_user = models.ForeignKey(User, related_name='from_user')
    to_user = models.ForeignKey(User, related_name='to_user')
    shared_object = models.ForeignKey(ObjectDetail, null=True, blank=True)
    dtobject = models.DateTimeField(auto_now_add=True)

通过上述模型,我在forms.py中生成了一个模型表单,代码如下:

class RatingForm(ModelForm):
     class Meta:
          model = Rating
          exclude = ('from_user', 'dtobject',
                     'shared_object')

在我的urls.py中,我尝试了以下操作:

url(r'^rate/(?P[\w]+)/(?P\d+)/(?P[\w-]+)/$', 'rating_form', name='rating_form'),                     

在我的views.py中,我进行了以下操作:

def rating_form(form_type = None, oid = None, oslug=None):
    print form_type
    form = RatingForm(data=request.POST or None)
    if request.POST and form.is_valid():
           form.save()
        return HttpResponseRedirect("/")
    else:
        return render(request, "share.html", {'form' : form })

这样做给我带来了以下错误:

rating_form() got multiple values for keyword argument 'form_type'

附加细节:

请求方法: GET
请求URL:    http://127.0.0.1:8000/rate/lending/3/random-stuff/
Django版本: 1.4.1
异常类型: TypeError
异常值:    
rating_form() got multiple values for keyword argument 'form_type'
异常位置: /Library/Python/2.7/site-packages/django/contrib/auth/decorators.py in _wrapped_view, line 20
Python可执行文件:  /usr/bin/python

我做错了什么?

0