Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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
如何将URL变量传递给django admin内联表单?_Django_Django Admin - Fatal编程技术网

如何将URL变量传递给django admin内联表单?

如何将URL变量传递给django admin内联表单?,django,django-admin,Django,Django Admin,我想从URL参数中预填充管理表单中的值。对于普通字段,只需将/?field_name=值参数添加到URL即可。但是,我的字段位于表单中的管理内联表单集中。有没有办法将URL参数传递给内联表单?例如: models.py: class Parent(Model): ... class Child(Model): name = CharField(max_length=20) provenance = ManyToManyField('Provenance') class

我想从URL参数中预填充管理表单中的值。对于普通字段,只需将/?field_name=值参数添加到URL即可。但是,我的字段位于表单中的管理内联表单集中。有没有办法将URL参数传递给内联表单?例如:

models.py:

class Parent(Model):
    ...

class Child(Model):
    name = CharField(max_length=20)
    provenance = ManyToManyField('Provenance')

class Provenance(Model):
    child = ForeignKey(Child)
    parent = ForeignKey(Parent)
admin.py:

class ProvenanceInline(admin.StackedInline):
    model = Provenance
    form = myforms.ProvenanceForm
    ...

class ChildAdmin(admin.ModelAdmin):
   form = myforms.ChildForm
   [inlines] = ProvenanceInline
   ...
现在,我有一个用于显示父对象的自定义视图,在该视图中,我希望有一个用于创建该父对象的子对象的链接。从理论上讲,这是可行的:

<a href="{%url 'admin:myapp_child_add'%}?parent={{origin.pk}}">Add Child</a>

问题是“父”字段隐藏在InlineAdmin表单集中。如何使provenceform看到传递给ChildForm的URL变量

我尝试在ProvenanceInline中重写
get\u formset
,或在ChildAdmin中修改
get\u inline\u实例
,但我没有成功。(顺便说一句,我的ChildForm被修改,以便它获得传递到其构造函数中的
request
变量。这里可能也可以使用
self.request
)。欢迎提出任何建议