簡體   English   中英

Django如何將POST保存到表單中?

[英]Django how to save POST into form?

我正在嘗試將 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 form.is_valid():
          form.save()
       return redirect('/')

返回:!PRINT request.POST

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

!打印表格

~name="title" value="Mat" maxlength="200" required id="id_title"

~name="title1" class="errorlist" 此字段是必需的。

表格.py

class PostForm(forms.ModelForm):

    class Meta:
       model = Post
       fields = '__all__'

模型.py

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

列表.html

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

您沒有將值傳遞給表單,沒有要保存的數據

嘗試這樣的事情:

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('/')

試試這個片段,

在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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM