Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 从url传递模型以创建\u对象通用输入视图_Django_Url_Variables_Django Generic Views - Fatal编程技术网

Django 从url传递模型以创建\u对象通用输入视图

Django 从url传递模型以创建\u对象通用输入视图,django,url,variables,django-generic-views,Django,Url,Variables,Django Generic Views,我想为多个模型创建通用输入。我的第一次访问使用了两个单独的URL: 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/$,

我想为多个模型创建通用输入。我的第一次访问使用了两个单独的URL:

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

我没有尝试过这一点,但您可以在创建后使用变量捕获值,并将其自动发送到创建对象视图:

url(r'url(r'^create_(?P<model>\w+)/$, create_object, {'template_name': 'create.html', 'post_save_redirect': '/library/', 'login_required': 'True'})
您必须以/create\u Actor/而不是/create\u Actor/的身份访问此url。我不知道如何让额外的上下文键工作。
希望这能有所帮助。

谢谢您的回复。我尝试了一些类似的方法,但没有成功。我得到了以下错误:“unicode”对象没有属性“name”得到了它。必须在单独的函数中使用get_model来动态地引入模型名
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'
    )