django - 如何使用带有参数的给定 url 的参数调用 reverse()?

标签 django

我有一个 Django 模型定义为

from utils.utils import APIModel
from django.db import models
from django.core.urlresolvers import reverse

class DjangoJobPosting(APIModel):
    title = models.CharField(max_length=50)
    description = models.TextField()
    company = models.CharField(max_length=25)

    def get_absolute_url(self):
        return reverse('jobs.views.JobDetail', args=[self.pk])

有风景

from restless.views import Endpoint
from restless.models import serialize
from .models import *
from utils.utils import JSON404

import ujson as json

class JobList(Endpoint):
    def get(self, request):
        fields = [
            ('url', lambda job: job.get_absolute_url()),
            'title',
            ('description',lambda job: job.description[:50]),
            'id'
        ]
        jobs = DjangoJobPosting.objects.all()
        return serialize(jobs, fields)

class JobDetail(Endpoint):
    def get(self, request, pk):
        try:
            job = DjangoJobPosting.objects.get(pk=pk)
            print(job)
            fields = ["title","description","company","id"]
            return serialize(job,fields)
        except Exception as e:
            return JSON404(e)

我在其他讨论反向方法的帖子中看到的是,它们按照我上面指定的术语定义第一个反向参数,但它们的 urls.py 使用相同类型的定义,而我使用的是

from django.conf.urls import patterns, include, url
from .views import *

urlpatterns = patterns('',
    url(r'^$',JobList.as_view()),
    url(r'^(?P<pk>\d+)/$', JobDetail.as_view()),
)

我不断得到的是一个错误,指出

"Reverse for 'jobs.views.JobDetail' with arguments '(1,)' and keyword arguments '{}' not found."

最佳答案

给 url 名称:

from django.urls import reverse

urlpatterns = patterns('',
    url(r'^$',JobList.as_view(), name='joblist'),
    url(r'^(?P<pk>\d+)/$', JobDetail.as_view(), name='jobdetail'),
)

调用 reverse 时使用该名称:

return reverse('jobdetail', args=[self.pk])

return reverse('jobdetail', kwargs={'pk': self.pk}) 

关于django - 如何使用带有参数的给定 url 的参数调用 reverse()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17824738/

相关文章:

regex - Django - 在模型中存储原始字符串文字以供正则表达式使用?

python - 如何将不同页面的表单数据保存到同一个模型...注册多个字段? Django

python - 应用引擎 : submitting form data to Google Spreadsheet

python - Django 单元测试 Sekizai 和 django cms

python - 用于字段选择的 Int 与 String

Django:以微秒为单位的分辨率的DurationField

python - Django 中的同时多任务处理

python - 如何从同一 TZ 中的 PostgreSQL 获取时间,该时间最初是在上传到数据库时使用的,而不是 UTC?

django - 如何将 Django 对象的方法结果存储在我的数据库中?

python - 设置 Virtualenv 和 Virtualenvwrapper 的问题