Hy家伙很抱歉这篇文章,但我需要帮助我的应用程序,我需要优化我的观点。我有5个型号,我怎么能这样做?
def save(request):
# get the request.POST in content
if request.POST:
content = request.POST
dicionario = {}
# create a dict to get the values in content
for key,value in content.items():
# get my fk Course.objects
if key == 'curso' :
busca_curso = Curso.objects.get(id=value)
dicionario.update({key:busca_curso})
else:
dicionario.update({key:value})
#create the new teacher
Professor.objects.create(**dicionario)
我的问题是?
1 - 我如何以通用方式执行此功能?我可以传递%s中的变量来创建和 得到?这样吗?
foo = "Teacher" , bar = "Course"
def save(request, bar, foo):
if request post:
...
if key == 'course' :
get_course = (%s.objects.get=id=value) %bar
...
(%s.objects.create(**dict)) %foo ???
我尝试在我的视图中执行此操作但不起作用= /,有人可以帮我完成这项工作吗?感谢
答案 0 :(得分:3)
不要手动完成所有操作,而应使用ModelForms。这样,您只需创建一个表单,在调用save()
时自动创建对象。
示例:
class ProfessorForm(ModelForm):
class Meta:
model = Professor
def save(request):
if request.method == 'POST':
form = ProfessorForm(request.POST)
if form.is_valid():
form.save()
答案 1 :(得分:0)
由于您有多个这些表单,因此您实际上需要表单集:http://docs.djangoproject.com/en/dev/topics/forms/formsets/
文档在描述如何将带有查询集的表单一起放入formset中以便一次编辑多个内容方面做得非常出色:)