Skip to main content
 首页 » 编程设计

python之没有所有字段的 django ModelForm之自动填充它们

2025年05月04日35mate10pro

我想自动填充模型的一个字段。它拥有一个客户端 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': ... } 

然后在创建表单时使用这些初始值。