【问题标题】:Django, function takes exactly 2 arguments (1 given)Django,函数只需要 2 个参数(1 个给定)
【发布时间】:2014-09-04 11:28:05
【问题描述】:

我在views.py中有一个这样的函数:

gunlist = []

def hepsi(request, slug):

    basliklar = Baslik.objects.filter(active=True).order_by('-updated')
    for i in basliklar:
        i = Baslik.objects.get(slug=slug)
        entryler = i.entry_set.all()
        ent1 = entryler.latest('id')
        ent2 = ent1.updated
        ent3 = str(ent2).split(" ")
        zaman1 = date.today()
        zaman2 = str(zaman1).split(" ")
        zamangun = zaman2[0]
        entgun = ent3[0]

        if entgun == zamangun:
            gunlist.append(i)


    cta = {'form2': form2, 'basliklar': basliklar, 'entryler': entryler, 'baslik': baslik, 'ent1': ent1, 'ent2': ent2, 'entgun': entgun, 'zamangun': zamangun}

    return render(request, "base.html", cta)

我正在尝试比较对象的日期和当前日期。当我运行服务器并转到链接时。它引发了这个错误:

TypeError at /
hepsi() takes exactly 2 arguments (1 given)
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 1.6.5
Exception Type: TypeError
Exception Value:    
hepsi() takes exactly 2 arguments (1 given)
Exception Location: /Users/malisit/Django/sozluk/lib/python2.7/site-packages/django/core/handlers/base.py in get_response, line 112
Python Executable:  /Users/malisit/Django/sozluk/bin/python
Python Version: 2.7.5

这有什么问题?我应该怎么做才能解决这个问题?谢谢。

这是 urls.py 部分:

url(r'^$', 'hepsi', name = "hepsiliste")

【问题讨论】:

标签: python django function django-views typeerror


【解决方案1】:

问题在于,当您调用 '/' 时,您并没有分配 slug 参数。 诀窍是给 slug 参数一个默认值,即:

 def hepsi(request, slug=None):
    #your logic

【讨论】:

    【解决方案2】:

    hepsi 视图使用 slug kwarg,因此 url 中需要 slug

    url(r'^(?P<slug>[-w]+)/$', 'hepsi', name = "hepsiliste")
    

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多