Django 模型形式验证

Django 模型形式验证,django,django-forms,Django,Django Forms,我正在尝试对表单进行自定义验证。但是,clean方法不起作用(无论我怎么尝试)。这就是我现在拥有的-- 在视图中—— 为了让clean_avatar方法“工作”,我缺少了什么?(目前,它似乎不在那里)。谢谢。我在任何地方都没有看到您的个人资料图片表单的实例?我假设profile是您的实例。如果是这种情况,则需要在ModelForm实例上调用is_valid(),以便调用clean_化身: def getting_started_pic(request): if request.method

我正在尝试对表单进行自定义验证。但是,
clean
方法不起作用(无论我怎么尝试)。这就是我现在拥有的--

视图中
——


为了让
clean_avatar
方法“工作”,我缺少了什么?(目前,它似乎不在那里)。谢谢。

我在任何地方都没有看到您的个人资料图片表单的实例?我假设profile是您的实例。如果是这种情况,则需要在ModelForm实例上调用is_valid(),以便调用clean_化身:

def getting_started_pic(request):
  if request.method == 'POST':
    profile.avatar = request.FILES['avatar']
    if profile.is_valid():
        profile.save()
    return render_to_response (...)

通常的模型表单工作流是:

def some_view(request):
    profile = request.user.profile # or some other way to get user's profile
    if request.method == 'POST':
        form = ProfilePictureForm(request.POST, request.FILES, instance=profile)    
    else:
        form = ProfilePictureForm(instance=profile)
    if form.is_valid():
        form.save()
        # Redirect somewhere
    # Return failed form
def getting_started_pic(request):
  if request.method == 'POST':
    profile.avatar = request.FILES['avatar']
    if profile.is_valid():
        profile.save()
    return render_to_response (...)
def some_view(request):
    profile = request.user.profile # or some other way to get user's profile
    if request.method == 'POST':
        form = ProfilePictureForm(request.POST, request.FILES, instance=profile)    
    else:
        form = ProfilePictureForm(instance=profile)
    if form.is_valid():
        form.save()
        # Redirect somewhere
    # Return failed form