使用输入变量django

时间:2014-10-13 19:43:56

标签: python django

我想使用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? :)

1 个答案:

答案 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()