我想使用title
作为变量,在instagram的api中使用它,例如:
user = user.api(title)
但尝试这个,它告诉我标题不存在
我已尝试打印form
但打印此
<input id="id_title" maxlength="100" name="title" type="text" value="Titulo" />
所以我想接受价值并使用它,但我不知道怎么做?
models.py
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100) #char de 100
url = models.CharField(max_length=150) #char de 150
content = models.TextField() # text
forms.py
来自django导入表格
class PostForm(forms.Form):
title = forms.CharField(max_length=100)
url = forms.URLField()#campo de tipo url
content = forms.CharField(widget=forms.Textarea)#campo de tipo textarea
最后views.py
django.shortcuts import render_to_response, redirect
from django.template import RequestContext
from blog.forms import PostForm
from blog.models import Post
from instagram.client import InstagramAPI
def create_post(request):
#si es una peticion post
access_token = "my-access-token"
api = InstagramAPI(access_token=access_token)
if request.method == "POST":
form = PostForm(request.POST)
if form.is_valid():
newPost = Post(title = request.POST["title"], url = request.POST["url"], content = request.POST["content"])
newPost.save()
print form['title']
return redirect('add_post')
else:
form = PostForm()
return render_to_response("crear_post.html",{"form":form}, context_instance = RequestContext(request))
帮助!感谢。
不过,任何人都可以&#34;教练&#34;我跟django? :)答案 0 :(得分:0)
编辑:您应该将表单更改为ModelForm:
from django import forms
from models import Post
class PostForm(forms.ModelForm):
class Meta:
model = Post
所以不要这样:
newPost = Post(title = request.POST["title"], url = request.POST["url"], content = request.POST["content"])
newPost.save()
你可以这样做:
newPost = form.save()
您可以从模型本身访问标题:
newPost.title
如果您想在保存表单之前从表单中获取它,可以从表单的cleaning_data中获取它。 (如果已经过验证):
form.cleaned_data['title']
编辑:注意:您还可能希望将模型上的CharField更改为url字段,以便对此进行适当的验证:
url = models.URLField()