我想自动填充模型的一个字段。它拥有一个客户端 IP。
我定义了一个 CreateView 如下:
class MyView(CreateView):
def post(self, request, *args, **kwargs):
self.form_class.client_ip = request.META.get('REMOTE_ADDR')
super(MyView, self).post(request, *args, **kwargs)
model = MyModel
form_class = MyForm
和 MyForm 这样:
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
exclude = ('ip',)
而且我不知道如何填写这个被排除的字段。
请您参考如下方法:
在 MyView 中,您应该添加一个名为 get_initial 的方法,它返回表单的初始值(作为字典)。例如:
def get_initial(self):
return { 'ip': ... }
然后在创建表单时使用这些初始值。
