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
Django 使用url参数获取外键值_Django - Fatal编程技术网

Django 使用url参数获取外键值

Django 使用url参数获取外键值,django,Django,我是Django的新手,我有下一个问题。我得到了一个外键,我想用url参数设置外键的值 例如: 在URL.py中 (r'^cyc/presupuesto/nuevo/(?P<pk>/d+)/$', views.clientes_presupuesto_crear.as_view(model=Presupuesto, success_url="/crm/ok/")) 当我进入mysite.com/cyc/presupuesto/nuevo/883时,我想要这个 外键中设置的值为883

我是Django的新手,我有下一个问题。我得到了一个外键,我想用url参数设置外键的值

例如:

在URL.py中

(r'^cyc/presupuesto/nuevo/(?P<pk>/d+)/$', views.clientes_presupuesto_crear.as_view(model=Presupuesto, success_url="/crm/ok/"))
当我进入mysite.com/cyc/presupuesto/nuevo/883时,我想要这个 外键中设置的值为883

有人有主意吗


对不起,我的英语不好。

您似乎在使用通用详细信息视图

url中传递的pk将传递给通用视图模型。所以

from django.views.generic import DetailView
from .models import Presupuesto, Cuenta


class CuentaDetail(DetailView):

    model = Cuenta
    template_name = 'cuenta/detail.html'

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super(CuentaDetail, self).get_context_data(**kwargs)
        # Get Presupuesto object and pass it to context
        context['obj_presupuestos'] = self.get_object().presupuesto_set.all()
        return context

这将使用所有引用URL中指定的Cuenta对象的Presupuesto对象填充传递到模板的上下文。

r'^cyc/Presupuesto/nuevo/?p/d+/$,视图。客户端\u Presupuesto\u crear。正如\u viewmodel=Presupuesto,success\u URL=/crm/ok/并且您应该根据需要更改视图,在我的观点中,我得到了这样一个:类clientes\u presupuesto\u crearCreateView:model=presupuesto form\u class=forms.ampreupuestoform template\u name='clientes/presupuesto/nuevo.html'post\u save\u redirect='/crm/ok/'login\u required=True def get\u success\u urlself:return反向“presupuesto-lista”我可以在那里更改以便获得客户id吗???
from django.views.generic import DetailView
from .models import Presupuesto, Cuenta


class CuentaDetail(DetailView):

    model = Cuenta
    template_name = 'cuenta/detail.html'

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super(CuentaDetail, self).get_context_data(**kwargs)
        # Get Presupuesto object and pass it to context
        context['obj_presupuestos'] = self.get_object().presupuesto_set.all()
        return context