SORU
16 Ocak 2013, ÇARŞAMBA


Django isteğe bağlı url parametreleri

Bu Django gibi bir url var:

url(
    r'^project_config/(?P<product>\w )/(?P<project_id>\w )/$',
    'tool.views.ProjectConfig',
    name='project_config'
),

ve benim views.py:

def ProjectConfig(request, product, project_id=None, template_name='project.html'):
    ...
    # do stuff

Sorun project_id parametre isteğe bağlı olmasını istiyorum. /project_config/ /project_config/12345abdce/ eşit derecede geçerli bir url kalıpları, böylece her ikisi de istiyorumEĞERproject_id geçirilir, daha sonra kullanabilirim. Şu anda haliyle, eğer project_id parametre olmadan URL'ye erişmek için çalışırsanız bir 404 olsun.

CEVAP
16 Ocak 2013, ÇARŞAMBA


Çeşitli yaklaşımlar vardır.

Süslü bir düzenli ifade... (?:/(?P<title>[a-zA-Z] )/)? Bir olur
Making a Regex Django URL Token Optional

Daha kolay takip etmek için başka bir şekilde elde edilmesi birden fazla kural, aynı görünüm gösteren tüm sahip olmaktır.

r'^project_config/$',
r'^project_config/(?P<product>\w )/$',
r'^project_config/(?P<product>\w )/(?P<project_id>\w )/$',

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Marissah Simonini

    Marissah Sim

    25 HAZİRAN 2013
  • Mark Hyder

    Mark Hyder

    6 EKİM 2011
  • RocketJump

    RocketJump

    22 ŞUBAT 2006