【发布时间】:2013-07-22 10:45:41
【问题描述】:
我有一个模型,我将其转换为如下形式
models.py
class Book(models.Model):
name = models.CharField()
description = models.TextField()
class College(models.Model):
name = models.CharField()
books = models.ManyToManyField(Book)
place = models.CharField()
form.py
from django.forms import ModelForm
from myapp.models import College
class CollegeForm(ModelForm):
class Meta:
model = College
views.py
def college_view(request):
form = CollegeForm()
if request.method == 'POST':
form = CollegeForm(request.POST):
if form.is_valid():
college_obj = College.objects.create(name=request.POST['name'],
place=request.POST['place'],
books= ???????)
return HttpResponseRedirect(reverse('index'))
return render_to_response('college-detail.html', {'form':form})
所以我上面所做的就是
创建了一个名为
College的模型,该模型具有指向Book的many to many链接使用
ModelForm将模型转换为表单并呈现为html-
当表单使用值提交时,鉴于我正在从
获取该值 request.POST 并尝试保存到College模型中。但是你可以观察到大学表格有一个
many to many字段和两个CharField, 所以我已将 char 字段直接保存到表中,但我被困在保存 表中的多对多字段books(即模型College)
所以任何人都可以简单地告诉我如何将manytomany 字段保存到数据库表中,我的意思是具有manytomany 字段的模型
提前致谢.....
【问题讨论】:
-
如果您使用的是 ModelForm,为什么要直接创建模型? ModelForms 有一个 .save() 方法,我假设他们会做你所期望的,但没有尝试过(我一般远离 ModelForms,太多隐含的行为不符合我的口味)。
-
我正在创建模型,因为我需要输入的信息用于某些目的,因此需要保存它们。
标签: django forms many-to-many models