Django ModelForm及传递额外参数

3

我希望在我的模型表单中添加IP地址,但是我无法设置想要的IP地址,它只会返回“此字段是必需的”。

models.py

class SignUp(models.Model):
    ....
    ip = models.IPAddressField()

views.py

def my_view(request):
    form = SignUpForm(request.POST, ip_addr=get_client_ip(request))

forms.py

class SignUpForm(ModelForm):
    class Meta:
        model = SignUp
    def __init__(self, *args, **kwargs):
        self.ip_addr = kwargs.pop('ip_addr', None)
        super(SignUpForm, self).__init__(*args, **kwargs)

    def clean_ip(self):
        return self.ip_addr
2个回答

4

我得到了“SignUpForm”对象没有“fields”属性的错误。我认为这适用于常规表单,但不适用于模态表单。 - Hellnar

0

我认为你不应该在这里使用clean_ip。你并没有对它进行任何清理。要么在你的视图中使用initial,要么重写save方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接