字典更新序列元素0的长度为1;Djang中需要2

2024-10-04 03:29:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python3.5.4和Django 2.0.0 final 0。我正在尝试创建一个Django博客web应用程序。我在创建Django视图和模板后收到错误。我的错误是:

Internal Server Error: /blog
Traceback (most recent call last):
  File "/home/pecan/PycharmProjects/autisticstory/venv/lib/python3.5/site-packages/django/core/handlers/exception.py", line 35, in inner
    response = get_response(request)
  File "/home/pecan/PycharmProjects/autisticstory/venv/lib/python3.5/site-packages/django/utils/deprecation.py", line 93, in __call__
    response = self.process_request(request)
  File "/home/pecan/PycharmProjects/autisticstory/venv/lib/python3.5/site-packages/django/middleware/common.py", line 60, in process_request
    if self.should_redirect_with_slash(request):
  File "/home/pecan/PycharmProjects/autisticstory/venv/lib/python3.5/site-packages/django/middleware/common.py", line 79, in should_redirect_with_slash
    is_valid_path('%s/' % request.path_info, urlconf)
  File "/home/pecan/PycharmProjects/autisticstory/venv/lib/python3.5/site-packages/django/urls/base.py", line 155, in is_valid_path
    resolve(path, urlconf)
  File "/home/pecan/PycharmProjects/autisticstory/venv/lib/python3.5/site-packages/django/urls/base.py", line 24, in resolve
    return get_resolver(urlconf).resolve(path)
  File "/home/pecan/PycharmProjects/autisticstory/venv/lib/python3.5/site-packages/django/urls/resolvers.py", line 496, in resolve
    sub_match = pattern.resolve(new_path)
  File "/home/pecan/PycharmProjects/autisticstory/venv/lib/python3.5/site-packages/django/urls/resolvers.py", line 496, in resolve
    sub_match = pattern.resolve(new_path)
  File "/home/pecan/PycharmProjects/autisticstory/venv/lib/python3.5/site-packages/django/urls/resolvers.py", line 345, in resolve
    kwargs.update(self.default_args)
ValueError: dictionary update sequence element #0 has length 1; 2 is required
[01/Jan/2018 21:12:43] "GET /blog HTTP/1.1" 500 88570

这是一个自闭症的故事/网址.py文件:

^{pr2}$

博客/视图.py文件:

from django.shortcuts import render
from .models import Post


# Create your views here.
def post_list(request):
    posts = Post.published.all()

    return render(request, 'blog/post/list.html',
                  {'posts': posts})

博客/网址.py文件:

from django.conf.urls import url
from . import views

app_name = 'blog'

urlpatterns = [
    url('^$', views.post_list, 'post_list'),
]

博客/模型.py文件:

from django.contrib.auth.models import User
from django.db import models
from django.utils import timezone


# Create your models here.
class Post(models.Model):
    STATUS_CHOICES = (
        ('draft', 'Roboczy'),
        ('published', 'Opublikowany')
                      )

    title = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250,
                            unique_for_date='publish')
    author = models.ForeignKey(User,
                               related_name='blog_posts',
                               on_delete=models.CASCADE)
    body = models.TextField()
    publish = models.DateTimeField(default=timezone.now)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    status = models.CharField(max_length=10,
                              choices=STATUS_CHOICES,
                              default='draft')

    class Meta:
        ordering = ('-publish',)

    class PublishedManager(models.Manager):
        def get_queryset(self):
            return super().get_queryset()\
                .filter(status='published')

    published = PublishedManager()

    def __str__(self):
        return self.title

模板/博客/列表.html文件:

{% extends "blog/base.html" %}

{% block content %}
    {% for post in posts %}
        <article class="blog-post">
            <div class="blog-post-title">
                <h2>{{ post.title }}</h2>
            </div>
            <div class="blog-post-meta">
                <p>Published {{ post.publish }} by {{ post.author }}</p>
            </div>
            <hr/>
            <div class="post-content">
                {{ post.body|truncatewords:300 }}
            </div>
            <div class="post-footer">
                Tags: <a href="#">hello</a> | <a href="#">world</a>
            </div>
        </article><!-- /.blog-post -->
    {% empty %}
        <p>Nie znaleziono żadnych postów!</p>
    {% endfor %}
{% endblock %}

有人能帮我吗?在


Tags: djangoinpyhomevenvmodelslibpackages
1条回答
网友
1楼 · 发布于 2024-10-04 03:29:25

它与blogs/urls.py中的这一行有关:

urlpatterns = [
    url('^$', views.post_list, 'post_list'),
]

这需要类似于:

^{pr2}$

第三个参数是kwargs,而不是{},因此需要指定它。有关详细信息,请参见here。在

相关问题 更多 >