使用url参数获取外键值

时间:2015-11-07 00:56:02

标签: django

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

例如:

在urls.py

(r'^cyc/presupuesto/nuevo/(?P<pk>/d+)/$', views.clientes_presupuesto_crear.as_view(model=Presupuesto, success_url="/crm/ok/"))

在clientes / models.py

class Presupuesto(models.Model):
    ESTADO_CHOICES = (('P', 'En Proceso'),('A', 'Aceptado'),('R', 'Rechazado'))
    cliente = models.ForeignKey(Cuenta,blank=True, null=True)

当我进入mysite.com/cyc/presupuesto/nuevo/883时我想要那个 外键中设置的值为883。

有人有想法吗?

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

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

在网址中传递的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

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