我创建了一个表单,它接受输入并将输入值保存在数据库(mysql)中。我的表格.py
class postcreation(forms.Form):
post_title = forms.CharField(max_length=200, widget=forms.TextInput(attrs={'name':'post_title'}))
post_name = forms.CharField(max_length=200, widget=forms.TextInput(attrs={'name':'post_name'}))
post_post = forms.CharField(widget=forms.Textarea(attrs={'name':'post_post'}))
我的模特.py
class postdata(models.Model):
title = models.CharField(max_length=200)
name = models.ForeignKey(userdata, on_delete='CASECADE')
post = models.TextField()
def __str__(self):
return self.title
一开始我没有使用'attr'值。它不起作用。我看到一个答案说我应该。还是不走运
我的观点.py
def postinput(request):
if request.method == 'POST':
form = postcreation(request.POST)
if form.is_valid():
inputpost = postdata(title=request.POST['post_title'], name=request.POST['post_name'], post=request.POST['post_post'])
inputpost.save()
return redirect('index')
else:
form = postcreation()
context = { 'form': form }
return render(request, 'firstapp/postinput.html', context)
html模板
<form method="POST" action="{% url 'index' %}">
{% csrf_token %}
{{ form }}
<button type="submit">Post</button>
</form>
我试图通过表单获取输入并将其保存到数据库中。但我没能做到。我不明白为什么。我正在看一些教程和一些问题。还是不行。谢谢你的帮助
您可以从已验证的表单而不是直接从请求中获取值,如下所示:
因为
postdata.name
是一个userdata对象,所以需要将它指向一个。例如,做这样的事情我不确定如何获取
userdata
post,因为这取决于代码的其余部分,但就是这样您也可能希望创建一个新的
userdata
对象。可能是这样的:同样,这取决于
userdata
是什么相关问题 更多 >
编程相关推荐