0

我有多个模型要为其创建通用输入。我的第一遍使用了两个单独的网址:

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 传递到参数中,以便该行将根据变量动态选择模型。

4

2 回答 2

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/ 的形式访问此 url。我不确定如何使 extra_context 键起作用。希望这可以帮助。

于 2010-03-02T18:05:48.413 回答
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'
    )
于 2010-03-03T19:28:59.340 回答