我有多个模型,我想为其创建通用输入。我的第一次使用了两个不同的网址:
url(r'^create_actor/$, create_object, {'model': Actor, 'template_name': 'create.html', 'post_save_redirect': '/library/', 'extra_context': {'func': 'Create Actor'}, 'login_required': 'True'}),
url(r'^create_movie/$, create_object, {'model': Movie, 'template_name': 'create.html', 'post_save_redirect': '/library/', 'extra_context': {'func': 'Create Movie'}, 'login_required': 'True'}),
我认为将这些组合成一个语句会好得多。我不确定如何将url中的变量传递给参数,以便该行可以根据变量动态选择模型。
答案 0 :(得分:0)
我没试过这个,但你可以使用变量来捕获create_之后的值,并让它自动发送到create_object视图:
url(r'url(r'^create_(?P<model>\w+)/$, create_object, {'template_name': 'create.html', 'post_save_redirect': '/library/', 'login_required': 'True'})
您必须以/ create_Actor /而不是/ creat_actor /访问此网址。我不知道如何让extra_context键工作。 希望这会有所帮助。
答案 1 :(得分:0)
from django.db import models
url(r'^create_(?P<modelname>\w+)/$', generic_add),
def generic_add(request, modelname):
mdlnm_model = models.get_model('catalog',modelname)
return create_object(request,
model = mdlnm_model,
template_name = 'create.html',
post_save_redirect = '/library/',
login_required = 'True'
)