Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用重定向()时,视图未返回HttpResponse对象_Python_Django_Django Views_Modelform - Fatal编程技术网

Python 使用重定向()时,视图未返回HttpResponse对象

Python 使用重定向()时,视图未返回HttpResponse对象,python,django,django-views,modelform,Python,Django,Django Views,Modelform,我尝试在django中创建模型表单以向我的模型添加新记录,但出现以下错误: The view post.views.add_job_resume didn't return an object. It returned None instead. 这是我的文件注意,在这个文件中,我有比我在这里写的更多的代码: view.py forms.py models.py 添加_job_resume.html 我搜索了很多这个错误,但我不能解决它!发生了什么事 重定向不是问题所在。问题是您的表单无效,如

我尝试在django中创建模型表单以向我的模型添加新记录,但出现以下错误:

The view post.views.add_job_resume didn't return an object. It returned None instead.
这是我的文件注意,在这个文件中,我有比我在这里写的更多的代码:

view.py

forms.py

models.py

添加_job_resume.html


我搜索了很多这个错误,但我不能解决它!发生了什么事

重定向不是问题所在。问题是您的表单无效,如果发生这种情况,视图不会改变任何内容


您应该将最后一行取消缩进一级,以便它捕获此案例。

重定向不是问题所在。问题是您的表单无效,如果发生这种情况,视图不会改变任何内容


您应该将最后一行取消缩进一级,以便它捕获此案例。

这与重定向无关。。它本身您刚刚忘记了一个代码路径。该方法可能确实是POST,但表单无效。因此,第一个if中的条件满足,但第二个if中的条件不满足。现在,您的视图将不返回任何内容,因此在这种情况下不会返回任何内容

通常只需重新提交模板,但现在使用的是无效表单,这样表单就可以显示错误,如:

def add_job_resume(request):
    if request.method=="POST":
        form = AddJobForm(request.POST)
        if form.is_valid():
            job_resume = form.save(commit=False)
            job_resume.user= request.user
            job_resume.save()
            return redirect('view_job_resume')

    else:
        form = AddJobForm()
    # Not placed under the else
    return render(
        request,
        'education/job_research_education_records/job_resume/add_job_resume.html',
        {'form': form}
    )

请注意,渲染不会放在else零件下。实际上,无论方法是POST,表单无效,还是方法不是POST,我们都会呈现页面并使用呈现的页面进行响应。

这与重定向无关。。它本身您刚刚忘记了一个代码路径。该方法可能确实是POST,但表单无效。因此,第一个if中的条件满足,但第二个if中的条件不满足。现在,您的视图将不返回任何内容,因此在这种情况下不会返回任何内容

通常只需重新提交模板,但现在使用的是无效表单,这样表单就可以显示错误,如:

def add_job_resume(request):
    if request.method=="POST":
        form = AddJobForm(request.POST)
        if form.is_valid():
            job_resume = form.save(commit=False)
            job_resume.user= request.user
            job_resume.save()
            return redirect('view_job_resume')

    else:
        form = AddJobForm()
    # Not placed under the else
    return render(
        request,
        'education/job_research_education_records/job_resume/add_job_resume.html',
        {'form': form}
    )

请注意,渲染不会放在else零件下。事实上,无论该方法是POST,表单无效,还是该方法不是POST,我们都会呈现页面并使用呈现的页面进行响应。

如果该方法是POST,但表单无效,则您不会在视图中执行任何操作。如果该方法是POST,但表单无效,那你就不要在你看来做任何事。谢谢!解决了一个错误:我填写了几次表单,但没有一次能够生成有效的表单。“残疾的问题是什么?”威廉·范-onsem@mostafarahnama:您可以在呈现form.errors之前将其打印出来,以便在服务器的标准输出上打印错误。请注意,在else情况下只应构造一个新表单,否则错误将不会显示在页面rendering.Ahhaaa上。在else情况下如何构造新表单@威廉·范-onsem@mostafarahnama:上述代码片段中已经存在这种情况。我只是说,如果是帖子,你不应该创建一个新的,否则错误不会出现,因为从技术上讲,你会呈现一个不同的表单。谢谢!解决了一个错误:我填写了几次表单,但没有一次能够生成有效的表单。“残疾的问题是什么?”威廉·范-onsem@mostafarahnama:您可以在呈现form.errors之前将其打印出来,以便在服务器的标准输出上打印错误。请注意,在else情况下只应构造一个新表单,否则错误将不会显示在页面rendering.Ahhaaa上。在else情况下如何构造新表单@威廉·范-onsem@mostafarahnama:上述代码片段中已经存在这种情况。我只是说,如果是帖子,你不应该创建一个新的,否则错误不会出现,因为从技术上讲,你会呈现一个不同的形式。
class JobRecord(models.Model):
    user = models.ForeignKey(User, on_delete=models.PROTECT)
    title = models.TextField(max_length=250, blank=False)
    explains = models.TextField(max_length=500, blank=True)
    post = models.TextField(max_length=100, blank=False)
    organization = models.TextField(max_length=100, blank=False)
    time_start = models.TextField(max_length=100)
    time_end = models.TextField(max_length=100)
    upload_url = models.FileField(upload_to='job-resume-files/')

    def __str__(self):
        return self.title
<form method="post" >
    {% csrf_token %}
    {{form.as_p }}
    <button type="submit" class="btn btn-info">add</button>
</form>
urlpatterns = [
   path('edu/resume/job/', views.view_job_resume, name='view_job_resume'),
   path('edu/resume/job/add', views.add_job_resume, name='add_job_resume')]
def add_job_resume(request):
    if request.method=="POST":
        form = AddJobForm(request.POST)
        if form.is_valid():
            job_resume = form.save(commit=False)
            job_resume.user= request.user
            job_resume.save()
            return redirect('view_job_resume')

    else:
        form = AddJobForm()
    # Not placed under the else
    return render(
        request,
        'education/job_research_education_records/job_resume/add_job_resume.html',
        {'form': form}
    )