您的位置:首页 > 其它

foreignKey怎么保存值的问题 困扰我很久.....

2010-08-18 13:36 274 查看

编辑 | 删除 | 权限设置 | 更多▼

waiting未 发表于2010年07月13日 00:57 阅读(0) 评论(0)分类: Django 权限: 公开

今天晚上搞了我两个小时才解决出来 难啊.......

首先我还是用用django的form来处理表单提交问题

我的info在models.py是这么处理的

class Info(models.Model):

title = models.CharField(max_length=100)

category = models.ForeignKey(Category)

subcategory = models.ForeignKey(Subcategory)

我以为在forms.py保存category跟subcategory时也需要用 forms.ForeignKey,错!

这是因为,其实category还是一个字符串类型

应该是这样的:

from django import forms

class xinxi(forms.Form):

title = forms.CharField(required=True)

category = forms.CharField(required=True)

subcategory = forms.CharField(required=True)

再然后我在views.py中

def info(request):

if request.method == 'POST':

form = xinxi(request.POST)

if form.is_valid():

title = form.cleaned_data['title']

category = form.cleaned_data['category']

subcategory=form.cleaned_data['subcategory']

这也是错的! 因为category是要保存Category的一个实例!!而我前台只是Category.id,所以要通过这个id找到Category的实例 : 正确的答案应该是这样的!!!!!!!

categoryid = int(form.cleaned_data['category'])

category=Category.objects.get(id=categoryid)

subcategoryid =int(form.cleaned_data['subcategory'])

subcategory=Subcategory.objects.get(id=subcategoryid)

这样在save()的时候才不会出现无法保存的错误

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: