Python Django如何将帖子保存到表单中?

Python Django如何将帖子保存到表单中?,python,django,forms,post,http-post,Python,Django,Forms,Post,Http Post,我正试着把帖子保存到我的表格里 视图.py def index(request): if request.method == 'POST': print('!PRINT request.POST') print(request.POST) form = PostForm(request.POST, request.FILES) print('!PRINT form') print(form) if fo

我正试着把帖子保存到我的表格里

视图.py

def index(request):

    if request.method == 'POST':
       print('!PRINT request.POST')
       print(request.POST)
       form = PostForm(request.POST, request.FILES)
       print('!PRINT form')
       print(form)
       if form.is_valid():
          form.save()
       return redirect('/')
class PostForm(forms.ModelForm):

    class Meta:
       model = Post
       fields = '__all__'
class Post(models.Model):
title = models.CharField(max_length=200)
title1 = models.CharField(max_length=200)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
    return self.title
返回: !打印请求.POST

~'title':['Bart','Mat'],'Create Match':['Submit']}>

!!打印表单

~name=“title”value=“Mat”maxlength=“200”所需id=“id\u title”

~name=“title1”class=“errorlist”此字段为必填字段

forms.py

def index(request):

    if request.method == 'POST':
       print('!PRINT request.POST')
       print(request.POST)
       form = PostForm(request.POST, request.FILES)
       print('!PRINT form')
       print(form)
       if form.is_valid():
          form.save()
       return redirect('/')
class PostForm(forms.ModelForm):

    class Meta:
       model = Post
       fields = '__all__'
class Post(models.Model):
title = models.CharField(max_length=200)
title1 = models.CharField(max_length=200)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
    return self.title
型号.py

def index(request):

    if request.method == 'POST':
       print('!PRINT request.POST')
       print(request.POST)
       form = PostForm(request.POST, request.FILES)
       print('!PRINT form')
       print(form)
       if form.is_valid():
          form.save()
       return redirect('/')
class PostForm(forms.ModelForm):

    class Meta:
       model = Post
       fields = '__all__'
class Post(models.Model):
title = models.CharField(max_length=200)
title1 = models.CharField(max_length=200)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
    return self.title
list.html

<form method="POST" enctype="multipart/form-data" action="/">
{%  csrf_token %}
{{ form.title }}
{{ form.title }}
<input type="submit" name="Create Match">
</form>>

{%csrf_令牌%}
{{form.title}}
{{form.title}}
>

您没有向表单传递值,没有要保存的数据

试着这样做:

def index(request):
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            new_post = name_of_your_model(
                field1=value_you_want_to_safe,
                field2=value_you_want_to_safe,
                ...
            )
            new_post.save()
        return redirect('/')
试试这个片段

in views.py

def index(request):
    form = PostForm()

    if request.method == 'POST':
       form = PostForm(request.POST, request.FILES)

       if form.is_valid():
           form.save()
           return redirect('/')

    return render(request,'path_to/html_template.html',context={'form':form})
在您的html_template.html中

<form method="POST" enctype="multipart/form-data" >
    {%csrf_token%}
    {% form.as_p %}
    <button type="submit">Submit</button>
</form>

{%csrf_令牌%}
{%form.as_p%}
提交

您的模板文件是什么样子的?PostForm类呢?@Gers谢谢您的回复我添加了代码这可能只是一个输入错误,但似乎您在list.html中重复了{form.title}}字段两次(我想第二个应该是form.title1),所以实际上没有数据传递给form.title1